我最近看到一个blog post(tweeted by @java)正变得越来越普遍:Optional.ofNullable(I).ifPresent ...... VS如果提出下面的代码(我!= NULL)
Optional.ofNullable(i).ifPresent(x -> doBlah(x));
代替的:
if (i != null) {
doBlah(i);
}
在这种情况下,使用可选显得非常尴尬的我,甚至忽略了变量的命名 - 后者是更易于阅读,更地道的使用情况(处理空值)。我相信这也能更好捕捉语义 - 我是从代码无法坚持到可选试图捕捉(如possible duplicate和this Oracle article描述)的语义可能。
我没有看到一个,但有一个良好的语义原因喜欢Optional.isNullable办法(忽略对性能的影响可能取决于如何使用它有)?
'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