库(DBpediaLookupClient.variableBindings()
)的答案会导致
List<Map<String, String>>
我试图检查列表是否为空。 我到目前为止所尝试的是
if (dbpedialookup.variableBindings() != null && !dbpedialookup.variableBindings().isEmpty()) {
System.out.println("Results Present);
} else {
System.out.println("No Results");
}
但是,对于结果列表是[]的项目。它投掷,
Exception in thread "main" java.lang.NullPointerException
在这种情况下我们如何检查null
?
答案 0 :(得分:2)
看起来顶级对象为null所以
if (dbpedialookup != null &&
dbpedialookup.variableBindings() != null &&
!dbpedialookup.variableBindings().isEmpty()) {
答案 1 :(得分:1)
以下是模式:
if (myList != null && !myList.isEmpty()) {
System.out.println("Isn't empty");
} else {
System.out.println("Is empty");
}
如果要检查列表中的变量,请使用以下命令:
if (myList != null) {
for (Map<String, String> map : myList) {
if (map != null) {
//perform on map
}
}
}
答案 2 :(得分:0)
使用Optional来整理:
if (Optional.ofNullable(dbpedialookup).map(DBpediaLookupClient::variableBindings).map(List::isEmpty).orElse(true))
// it's empty / null