我在类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() )
答案 0 :(得分:0)
您的问题肯定是e
为空,或者失败,trainer()
返回null。我没有看过你的整个班级,但是你的trainer()
方法看起来很试探但很稳固。检查初始化。
如果在完成之前,您必须让trainer()
返回一个可能未知的值(null),请考虑使用Java 8的Optional
类来避免空指针异常并使您的代码更容易调试。 (请参阅http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html和http://java.dzone.com/articles/optional-java-8-cheat-sheet)。