Moin, ich habe eine Liste mit Strings und mittendrin ist einmal
[CODE lang="java" title="Liste mit den Elementen"] SLList<String> liste = new SLList<String>();
liste.add(0, "a");
liste.add(1, null);
liste.add(2, "b");[/CODE]
[CODE lang="java" title="Methode zum Finden"] boolean find(final T e) {
boolean vorhanden = false;
Node<T> list = this.head; //komplette Liste
int z = 0;
while (!vorhanden && z < size) {
if (list.value == e) { //list.value.equals(e)
vorhanden = true;
} else {
list = list.next;
z++;
vorhanden = false;
}
}
return vorhanden;
}[/CODE]
null
. Ich habe eine Methode, in der man überprüfen soll, ob sich dieser String in der Liste befindet. Dafür habe ich mehrere Testfälle. Einmal überprüfe ich, ob sich der String in der Liste befindet und dann überprüfe ich, ob es null in der Liste gibt. Strings kann ich ja vergleichen mit .equals(value)
, aber sobald ich in der if-Abfrage auf null
stoße mit .equals(value)
, bekommt man eine NPE. Wenn ich jetzt nur ==
verwende, finde ich null
, aber die Strings werden nicht mehr gefunden. Die Frage ist jetzt, wie ich die NPE umgehen kann, damit ich beide Abfragen als richtig erhalte.[CODE lang="java" title="Liste mit den Elementen"] SLList<String> liste = new SLList<String>();
liste.add(0, "a");
liste.add(1, null);
liste.add(2, "b");[/CODE]
[CODE lang="java" title="Methode zum Finden"] boolean find(final T e) {
boolean vorhanden = false;
Node<T> list = this.head; //komplette Liste
int z = 0;
while (!vorhanden && z < size) {
if (list.value == e) { //list.value.equals(e)
vorhanden = true;
} else {
list = list.next;
z++;
vorhanden = false;
}
}
return vorhanden;
}[/CODE]