Я недавно видел blog post (tweeted by @java), что указывает на следующий код становится все более распространенным:Optional.ofNullable (я) .ifPresent ... против, если (я! = NULL)
Optional.ofNullable(i).ifPresent(x -> doBlah(x));
вместо из:
if (i != null) {
doBlah(i);
}
использование Дополнительно в этом случае оказывается очень неудобно для меня, даже не обращая внимания на именование переменных - последний легче читать и более идиоматических для случая использования (обработки аннулирует). Я считаю, что это также улучшает семантику лучше - я, скорее всего, из кода, который не придерживается семантики, которую Опция пытается захватить (как описано в possible duplicate и в this Oracle article).
Я не вижу одного, но есть ли хорошая семантическая причина, чтобы предпочесть Необязательный. Необязательный подход (игнорируя влияние производительности, которое может иметь в зависимости от того, как оно используется)?
'orElse (x-> doBla (x))' неверно, если только 'i' не является лямбдой. – shmosel
http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html – shmosel
http://stackoverflow.com/documentation/java/152/optional – shmosel