2016-10-28 35 views
-1

從庫(DBpediaLookupClient.variableBindings())答案結果要檢查名單<地圖<String,字符串>>爲空或不

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

如果拋出一個異常,你如何測試結果List是[]的結果?我建議你一個接一個地檢查參考文獻。 –

+2

僅當'variableBindings()'不返回'null'看起來正確時,才檢查'variableBindings()'不返回null並測試'isEmpty()'。唯一可行的選擇是'dbpedialookup'是'null'。請添加此支票。 –

回答

2

看起來像頂層對象是空,因此

if (dbpedialookup != null && 
    dbpedialookup.variableBindings() != null && 
    !dbpedialookup.variableBindings().isEmpty()) { 
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 
     } 
    } 
} 
0

使用可選進行整理:

if (Optional.ofNullable(dbpedialookup).map(DBpediaLookupClient::variableBindings).map(List::isEmpty).orElse(true)) 
    // it's empty/null 
+0

我不確定我是否認爲這比Scary Wombat的方法更整潔。但即使是這樣,我相信這個答案實際上並不能幫助OP理解問題所在。 – ruakh

相關問題