Вложенные понимания списка и выражения генератора:
[(i,j) for i in range(3) for j in range(i) ]
((i,j) for i in range(4) for j in range(i) )
Они могут заменить огромные блоки кода вложенного цикла.
Один из подходов, который использовался в проекте, в котором я участвовал несколько лет назад (также в сочетании .NET / Java), заключался в добавлении свойств индикатора: NumProperty
и NumPropertyIsNull
. Это было не особо красиво, но сработало.
Как побочный узел, я думаю, что в конце концов мы не смогли найти ни одного бизнес-кейса, в котором разница между 0
и нулевым
действительно имела значение.
Я надеюсь , что если вы можете предоставить целое число, допускающее значение NULL, через WCF, то все, что использует это из Java, будет использовать типы оболочки - Integer
вместо int
, Byte
вместо byte
и т. д. Конечно, это ссылочные типы, тогда как типы значений, допускающие значение NULL в .NET, по-прежнему являются типами значений, поэтому вы Получите большее давление сборщика мусора, и это будет, как правило, менее эффективным, но вы мало что можете с этим поделать, учитывая, что Java не поддерживает определяемые пользователем типы значений.