Wie zu bestimmen, ob eine Liste der Zeichenfolge null enthält oder leer-Elemente

In Java, habe ich die folgende Methode:

public String normalizeList(List<String> keys) {
    //...
}

Möchte ich überprüfen, dass keys:

  • Ist nicht null selbst; und
  • Ist nicht leer (size() == 0); und
  • Keine String Elemente null; und
  • Keine String Elemente, die leer ("")

Dies ist eine utility-Methode, die wird in einem "commons"-Stil JAR (die Klasse wird so etwas wie DataUtils). Hier ist, was ich habe, aber ich glaube, es ist falsch:

public String normalize(List<String> keys) {
    if(keys == null || keys.size() == 0 || keys.contains(null) || keys.contains(""))
        throw new IllegalArgumentException("Bad!");

    //Rest of method...
}

Ich glaube, die letzten 2 Prüfungen für keys.contains(null) und keys.contains("") sind falsch und werden wahrscheinlich geworfen runtime-exceptions. Ich weiß, ich kann einfach eine Schleife durch die Liste innerhalb des if - Anweisung und überprüfen Sie für Nullen/leert es, aber ich bin auf der Suche nach einer eleganten Lösung, wenn es vorhanden ist.

"ich glaube, die letzten 2 Prüfungen für Schlüssel.enthält(null) und Schlüssel.enthält("") falsch sind und wahrscheinlich geworfen runtime-exceptions.": Warum? Welche Ausnahme muss man rechnen?
Schlüssel.enthält(null) wird in Ordnung sein, aber Tasten.enthält("") funktionieren nur in bestimmten Situationen, aber sollte das nicht eine exception werfen.
Mann, Sie haben zu viele Nullen Fliegen um Ihre app...
Doc sagt, dass die NPE geworfen werden konnte. Trotzdem einige Implementierungen von List verwenden Collection#contains machen mich sicher, um zu glauben, dass die docs.

InformationsquelleAutor IAmYourFaja | 2012-08-16

Schreibe einen Kommentar