Boolean方法创建异常

时间:2015-05-19 23:26:02

标签: java

我在类trainer()中创建了一个名为Trainer的布尔方法,它扩展了抽象类Employees()。如果列表中的Employee是一个培训师然后打印它,则此方法返回true。但是当我执行程序时,布尔方法trainer似乎有一个例外。至于ItemEmployees,这是一个扩展名为Item()的类的类。

如果需要,我可以提供他们的代码。但我不认为问题出在这些课程中。

以下是在主类中写的:

Node firstnode = list.getFirst(); 
ItemEmployees t = (ItemEmployees) firstnode.getValue(); 
for(Node tmp=firstnode; tmp!=null; tmp=tmp.getNext())
{
        if(tmp.getValue()!=null)
         {
                Employees e = t.keye();
                if( e.trainer() )
                {
                        e.print();
                }
        }
}

现在这是Trainer()类:

public boolean trainer()
{
    return true;
}

异常

  

MainClass.main(MainClass.java:348)中线程“main”java.lang.NullPointerException中的异常

第348行

if( e.trainer() )

1 个答案:

答案 0 :(得分:0)

您的问题肯定是e为空,或者失败,trainer()返回null。我没有看过你的整个班级,但是你的trainer()方法看起来很试探但很稳固。检查初始化。

如果在完成之前,您必须让trainer()返回一个可能未知的值(null),请考虑使用Java 8的Optional类来避免空指针异常并使您的代码更容易调试。 (请参阅http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.htmlhttp://java.dzone.com/articles/optional-java-8-cheat-sheet)。