当检查在方法内部时,如何避免空指针访问警告?

时间:2016-01-07 10:13:07

标签: java eclipse java-8

我处理以下方法:

boolean isNullOrEmpty(String s) {
  return s == null || s.length() == 0;
}

麻烦的是,它与@Nullable不兼容。对于istance,在以下代码中,如果不应该显示警告。

void test(@Nullable String s) {
  if (!isNullOrEmpty(s)) {
    s.length(); // warning : o may be null
  }
}

在保留isNullOrEmptyNullable时,有没有办法让这个警告消失?

2 个答案:

答案 0 :(得分:3)

你有没有理由不使用if(o!= null)?

Objects.isNull的目的是用作谓词: .filter(对象::的isNull)

这个警告可能是个错误。您可以使用@SuppressWarnings注释您的方法,如果您真的希望它消失

答案 1 :(得分:2)

我认为如果你重构一下使用false,你会更好。

Optional

然后您可以将其用作:

@NonNull Optional<String> optNullOrEmpty(@Nullable String s) {
  if (s == null || s.length() == 0)
    return Optional.empty();
  else
    return Optional.of(s);
}