有许多!= null
和!= null && !s.isEmpty()
像这样:
if(sidebar.getModel() != null && !sidebar.getModel().isEmpty()) { ... }
在我们的代码中。看起来不太好的太多了。这个空检查是否有一个简短的手。哪个Java库为这些速记函数提供了广泛的支持,而不需要那么多依赖于其他java工件?
与if(notNull(s))
或if(notEmpty(s))
类似,它检查非空并且不是空的。像这样的东西。
答案 0 :(得分:1)
对于String
课程,StringUtils.isEmpty(String value)
中有apache-commons-lang3
。对于其他类型,您可以创建自己的静态方法,并通过static import
使用它。
答案 1 :(得分:1)
Apache commons-lang
检查String是否为空(""),不是null而不是空白。
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true
参数: str - 要检查的String,可以为null
返回: 如果String不为空且不为null且不是空格
,则返回true答案 2 :(得分:0)
从 Java 1.7 ,您可以使用实用工具类Objects
:
检查指定的对象引用是否为null。此方法主要用于在方法和构造函数中进行参数验证,如下所示:
public Foo(Bar bar) {
this.bar = Objects.requireNonNull(bar);
}
有用的链接 :
<强>更新强>
为了避免NullPointerException
Java 1.8 有一些特殊的课程Optional。
使用此类将如下所示:
String contents = new String(Files.readAllBytes(Paths.get(Test.ALICE_PATH)), StandardCharsets.UTF_8);
List<String> wordList = Arrays.asList(contents.split("[\\P{L}]+"));
Optional<String> optionalValue = wordList.stream().filter(s -> s.contains("red")).findFirst();
optionalValue.ifPresent(s -> System.out.println(s + " contains red"));
Set<String> results = new HashSet<>();
optionalValue.ifPresent(results::add);
Optional<Boolean> added = optionalValue.map(results::add);
System.out.println(added);
//
Optional<String> optionalString = Optional.empty();
String result = optionalString.orElse("N/A");
System.out.println("result: " + result);
result = optionalString.orElseGet(() -> System.getProperty("user.dir"));
System.out.println("result: " + result);