Java 8 将两个空检查替换为可选

Java 8 Replace two null check with Optional

下面是我的代码,它按预期工作。但我需要将其替换为 Optional.ofNullable

if (getFirstData != null && getSecondData !=null {
 ... doing my work here
} else {
  ... doing my else work here
}

如何使用 Optionals.ofNullable(..) 替换两个 AND null 检查?

只是技术上你想要的可以通过以下方式实现

if (Optional.ofNullable(getFirstData).isPresent() && Optional.ofNullable(getSecondData).isPresent() ) {
 ... doing my work here
} else {
  ... doing my else work here
}

但正如其他评论者已经指出的那样,这样做似乎并不明智。

这可能有点矫枉过正,但如果需要检查 多个 值是否为空值,可以像这样 使用 Optional :

static boolean allNonNullsOptional(Object ... items) {
    return Stream.of(items).map(Optional::ofNullable).allMatch(Optional::isPresent);
}

但是用更短的方法也可以达到同样的效果 Object::nonNull:

static boolean allNonNulls(Object ... items) {
    return Stream.of(items).allMatch(Objects::nonNull);
}