检查List <map <string,string =“”>&gt;是空的

时间:2016-10-28 05:17:10

标签: java list nullpointerexception null

库(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

3 个答案:

答案 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