我创建了一个Initialize类来避免大量不需要的对象。为了使用这个对象,我创建了一个它的实例:
public static Initialize INIT = new Initialize();
每当我使用“Initialize.INIT”时,我会在“Initialize”处获得一个NullPointer。
如何解决原始错误StackOverflow并避免使用NPE?
答案 0 :(得分:1)
NPE的原因是在您尝试使用时INIT
的值为null
。
怎么会这样?毕竟,您将其初始化为新对象,new
运算符永远不会返回null
。
最可能的解释是某些内容正在将null
分配给INIT
。您应该可以通过将字段声明为final
来避免这种情况。
(也有可能你有一些代码在初始化之前查看INIT
的值。这只会在你为其他一些类执行静态初始化代码时发生,并且这个类的静态与另一个的静态之间的依赖循环。)