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
Elementenull
; 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
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht werfen nicht alle runtime-exceptions und Ergebnisse
true
wenn Ihre Liste hat entweder null (oder) leerer String.InformationsquelleAutor kosa
Dieser sieht in Ordnung für mich, die einzige Ausnahmen, die Sie würden, get aus
keys.contains(null)
undkeys.contains("")
wäre, wennkeys
selbst warnull
.Jedoch, da Sie überprüfen können, dass du zuerst wissen, dass an dieser Stelle
keys
ist nichtnull
, also keine runtime-exceptions auftreten.InformationsquelleAutor NominSim
Ich bin nicht sicher, aber gibt es da nicht eine helper-Klasse in ApacheCommon Bibliothek zu tun? wie, wenn Sie die isEmpty-für eine Zeichenfolge, und Sie haben isNullOrEmpty in ApacheCommons Bibliothek
InformationsquelleAutor sheidaei
Überprüfen Sie die Liste in einem Durchgang
InformationsquelleAutor Roman C
Konnte man auch mit Apache StringUtils und prüfen, ob der string isBlank, dieser wird auf null prüfen, Emptystring und auch schneiden Sie Ihre Wert.
Kasse StringUtils Docs hier:
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html
InformationsquelleAutor Goot