Примечание: это домашнее задание / задание не отвечайте, если не хотите.
Хорошо, после некоторого поиска и прочтения:
Как проверить, является ли элемент массива нулевым, чтобы избежать исключения NullPointerException в Java
Изящно избегая исключения NullPointerException в Java
http://c2.com/cgi/wiki?NullPointerException
Я до сих пор не добился прогресса в устранении ошибки NullPointerException в моем коде, фрагмент для сомнительного кода:
int findElement(String element) {
int retval = 0;
for ( int i = 0; i < setElements.length; i++) {
if ( setElements[i].equals(element) ) { // This line 31 here
return retval = i;
}
else {
return retval = -1;
}
}
return retval;
}
void add(String newValue) {
int elem = findElement(newValue);
if( numberOfElements < maxNumberOfElements && elem != -1 ) {
setElements[numberOfElements] = newValue;
numberOfElements++;
} else { System.out.println("Element " + newValue + "already exist"); }
}
Компилируется, но добавление нового элемента в набор приводит к ошибке NullPointerException.
D:\javaprojects>java SetDemo
Enter string element to be added
A
You entered A
Exception in thread "main" java.lang.NullPointerException
at Set.findElement(Set.java:31)
at Set.add(Set.java:44)
at SetDemo.main(Set.java:145)
Я добавил еще одну проверку, хотя, честно говоря, понятия не имею, имеет ли это право на строку 31.
if (setElements! = null && setElements [i] .equals (element)), но все равно не радует.
Документация / советы или объяснения приветствуются.
обучение,
люпин