Java通用对象空指针检查抛出空指针异常

时间:2016-05-01 08:34:39

标签: java generics nullpointerexception tostring

我试图寻找类似的问题,但无济于事。如果我从"!="更改操作员到" ==",它打印" {}"。此外,如果我只是打印出变量I' m testing(current.myData),它引用的整数将按预期打印出来。但是,每次我测试" current.myData!= null"它抛出一个空指针异常并退出。非常感谢任何帮助!

public class LinkedQueue<E> implements QueueADT<E> {

@Override
public String toString() {
...
    String exitVal = null;
    final StringBuffer sb = new StringBuffer();
    if (myFront.myData == null) {
        exitVal = "{ }";
    } else {
        Node<E> current = myFront.myNext;
        sb.append('{');
        sb.append(myFront.myData);
        while (current.myData != null) {
            sb.append(", ");
            sb.append(String.valueOf(current.myData));
            current = current.myNext;
        }
        sb.append('}');
        exitVal = sb.toString();
    }
    return exitVal;
}

1 个答案:

答案 0 :(得分:1)

在循环体中,current = current.myNext;没有对myNext null进行测试,因此第一次(或后续)循环迭代current必须为{{1} }}。你可以改变

null

类似

while (current.myData != null) {