2016-10-28 8 views
-1

Die Antwort aus einer Bibliothek (DBpediaLookupClient.variableBindings()) Ergebnisse inUm zu überprüfen, ob List <Map <String, String >> leer ist oder nicht

List<Map<String, String>> 

Ich versuche, wenn die Liste, wenn leer oder nicht zu überprüfen ist. Was ich versucht habe, so weit ist

if (dbpedialookup.variableBindings() != null && !dbpedialookup.variableBindings().isEmpty()) { 
    System.out.println("Results Present); 
} else { 
    System.out.println("No Results"); 
} 

Aber auf Posten, bei denen die resultierende Liste [] ist. Sein Werfen,

Exception in thread "main" java.lang.NullPointerException 

Wie überprüfen wir für null in einer solchen Situation?

+0

Wie testet man die Resultierende, dass die resultierende Liste [] ist, wenn sie eine Ausnahme auslöst? Ich schlage vor, Sie überprüfen Referenzen nacheinander. –

+2

Die Überprüfung für 'variableBindings()' gibt 'null' und testing' isEmpty() 'nur dann zurück, wenn' variableBindings() 'nicht' null' zurückgibt, sieht korrekt aus. Die einzig praktikable Alternative ist, dass 'dbpedialookup'' null' ist. Bitte fügen Sie diesen Scheck auch hinzu. –

Antwort

2

aussehen wie die Top-Objekt ist null, so

if (dbpedialookup != null && 
    dbpedialookup.variableBindings() != null && 
    !dbpedialookup.variableBindings().isEmpty()) { 
1

Das folgende ist das Muster:

if (myList != null && !myList.isEmpty()) { 
    System.out.println("Isn't empty"); 
} else { 
    System.out.println("Is empty"); 
} 

Wenn Sie Variablen in der Liste zu überprüfen, verwenden Sie die folgenden Schritte aus:

if (myList != null) { 
    for (Map<String, String> map : myList) { 
     if (map != null) { 
      //perform on map 
     } 
    } 
} 
0

Verwendung Optional zum Aufräumen:

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

Ich bin mir nicht sicher, ob ich damit einverstanden bin, dass das aufgeräumter ist als Scary Wombats Ansatz; Aber selbst wenn es so ist, bin ich zuversichtlich, dass diese Antwort dem OP nicht wirklich helfen wird, das Problem zu verstehen. – ruakh

Verwandte Themen