有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

下面是我的代码,它按预期工作。但我需要用可选的替换它。不可告人的

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

如何使用Optionals.ofNullable(..)替换两个和空检查


共 (2) 个答案

  1. # 1 楼答案

    这可能有点过头了,但是如果需要检查多个值的空值,可以使用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);
    }
    
  2. # 2 楼答案

    从技术上讲,你想要的东西可以通过以下方式实现

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

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