Я пытаюсь создать класс объектов LinkedSet, который реализует модифицированный интерфейс Set. Я получаю исключение NullPointerException при попытке проверить, указывает ли firstNode значение null или нет. Я не уверен, как решить эту проблему.Получение NullPointer реализации LinkedSet
Вот соответствующий код.
Конструктор для общего множества объектов
public class LinkedSet<T> implements Set<T> {
private Node firstNode;
public LinkedSet() {
firstNode = null;
} // end Constructor
Метод, который держит меня
public int getSize() {
int size = 1;
Node current = firstNode;
while ((current.next) != null) {
size++;
current = current.next;
}
return size;
} // end getSize()
IsEmpty метод()
public boolean isEmpty() {
Node next = firstNode.next; //Get error here
if (next.equals(null)) {
return true;
}
return false;
} // end isEmpty()
Здесь частный внутренний класс для Node объектов
private class Node {
private T data;
private Node next; //Get Error here
private Node(T data, Node next) {
this.data = data;
this.next = next;
} // end Node constructor
private Node(T data) {
this(data, null);
}// end Node constructor
} // end Node inner Class
И, наконец, основной метод тестера.
public class SetTester {
public static void main(String[] args) {
LinkedSet<String> set = new LinkedSet<String>();
System.out.println(set.getSize()); //Get error here
}
}
firstNode = нуль ; на ваш конструктор бросает это –
В дополнение к другим предложениям: в 'getSize()' Я считаю, что вы должны инициализировать 'size' до 0 и использовать' current! = null' в качестве условия 'while'. –