使用抽象类时出现NullPointerException 我最近一直在努力把我的作业从C++改成java,我还是初学者。 我上了这门课: package ThreeDimensionalController; import ThreeDimensionalShape.*; import java.util.Deque; public class ThreeDimensionalController { private Deque<ThreeDimensionalShape> setOf3DShapes; public void displayVolume() { for( ThreeDimensionalShape s : setOf3DShapes) System.out.println(s.volume()); } public void displayArea() { for (ThreeDimensionalShape s : setOf3DShapes) System.out.println(s.area()); } public void add(ThreeDimensionalShape shape) { setOf3DShapes.push(shape); } }

使用抽象类时出现NullPointerException 我最近一直在努力把我的作业从C++改成java,我还是初学者。 我上了这门课: package ThreeDimensionalController; import ThreeDimensionalShape.*; import java.util.Deque; public class ThreeDimensionalController { private Deque<ThreeDimensionalShape> setOf3DShapes; public void displayVolume() { for( ThreeDimensionalShape s : setOf3DShapes) System.out.println(s.volume()); } public void displayArea() { for (ThreeDimensionalShape s : setOf3DShapes) System.out.println(s.area()); } public void add(ThreeDimensionalShape shape) { setOf3DShapes.push(shape); } },java,nullpointerexception,Java,Nullpointerexception,如何修复它,使其正常工作 @编辑:NullPointerException已解决,谢谢大家 首先,您尚未初始化变量setOf3DShapes。所以你得到了错误。可以使用实现类-ArrayQue、ConcurrentLinkedQue、LinkedBlockingDeque、LinkedList初始化变量。例如 Deque<ThreeDimensionalShape> setOf3DShapes = new LinkedList<String>(); 在推送shape对

如何修复它,使其正常工作


@编辑:NullPointerException已解决,谢谢大家

首先,您尚未初始化变量setOf3DShapes。所以你得到了错误。可以使用实现类-ArrayQue、ConcurrentLinkedQue、LinkedBlockingDeque、LinkedList初始化变量。例如

Deque<ThreeDimensionalShape> setOf3DShapes = new LinkedList<String>(); 
在推送shape对象之前,必须初始化setOf3DShapes。 在三维控制器中,您可以创建一个构造函数来初始化3DShapes集


伊克斯,很简单,谢谢你的帮助,我没看到。
Deque<ThreeDimensionalShape> setOf3DShapes = new LinkedList<String>(); 
public ThreeDimensionalController() {
       if(setOf3DShapes == null)
                setOf3DShapes = new LinkedList<String>();
 }