我有点绝望,因为我甚至不知道我有可能得到我得到的例外。
从堆栈跟踪:
java.lang.NullPointerException at us.fl.k12.sdhc.services.dto.MagnetApplicant.getGrade(MagnetApplicant.java:86) ...
MagnetApplicant代码:
84 public Grade getGrade()
85 {
86 return grade;
87 }
成绩是枚举。如何在返回值时抛出NullPointerException?
感谢阅读!
答案 0 :(得分:2)
您正在调用getGrade()方法的对象引用可能为null。具有这种方法的enum本身并不一定。
由于枚举不会被自动装箱/自动装箱并且从方法返回null很好,所以问题不在方法内。
答案 1 :(得分:1)
在这样的情况下,我看到过类似的奇怪例外:
Integer value;
public int getValue() {
return value;
}
在这些情况下,return value
可以在value
为空时抛出NPE(因为自动取消装箱)。
我无法解释你的情况,不过。
答案 2 :(得分:1)
不应该发生。您是否正在使用某种框架在后台为您做一些事情?例如。 Spring AOP,hibernate等。
答案 3 :(得分:0)
调用该方法的类是否可能为null,并且编译器已优化了函数调用,以便字节码读取,实际上是:
Grade myGrade = myClass.grade;
编译器有一些棘手的事情可以解决相应的原始源的哪一行,并且可能选择了getGrade第86行。
如果应该很容易证明该类是否为空。