NullPointerException в методе push () стека в Java - PullRequest
0 голосов
/ 21 августа 2011

Как включить NullPointerException в следующий метод push() для стека в Java?

public void push(E e) {
        int len = size();
        if (len == 0)
            throw new NullPointerException();
        else
            addElement(e);
        System.out.println("The element pushed is " + e);
    }

В PSVM всякий раз, когда я вызываю метод push(), он выдает исключение NullPointerException бездобавление в стек.

public static void main(String[] args) {
        try {
            SortableStack<Object> s = new SortableStack<Object>();
            s.push(10);
            s.push(20);
            System.out.println("The element popped is " + s.pop());
        } 
        catch (NullPointerException e) {
            System.out.println("Null Pointer Exception encountered!");
        }
}

Ответы [ 2 ]

1 голос
/ 21 августа 2011

Я не уверен на 100%, чего вы хотите достичь, но вы должны проверить null -ness e, а не размер стека:

public void push(E e) {
    if (e == null) {
        throw new NullPointerException("Can't push a null element");
    }

    addElement(e);
    System.out.println("The element pushed is " + e);
}
0 голосов
/ 21 августа 2011

Ну, я думаю, это потому, что когда вы создаете объект, его начальный размер равен нулю.И когда вы вызываете push, он проверяет размер (if len == 0), находит его ноль, поэтому выдает npe!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...