我是JAVA的新手!我试图修复所有但仍然给出相同的错误。 这是代码,当我尝试将一个实例添加到发生的向量时。任何想法?
private static Vector<DrawingElement> vector;
public void Add(DrawingElement de) {
vector.addElement(de); // ERROR //
System.out.println("ADDED!");
}
答案 0 :(得分:1)
您必须使用以下内容初始化Vector:
private static Vector vector = new Vector();
避免NullPointerException。初始化后,您将能够添加元素。
答案 1 :(得分:1)
似乎vector
变量未初始化。这就是为什么你得到NullPointerException
。
你必须初始化矢量。例如
Vector vector = new Vector();
或
Vector vector = new Vector(size); // with the capacity
在你的情况下,你在向量中添加DrawingElement类,所以你必须初始化像这样的东西
Vector<DrawingElement> vector = new Vector<DrawingElement>();
答案 2 :(得分:0)
确保您初始化Vector
,如此:
private static Vector vector = new Vector();
更好的是,如果它只存储Vector
类型的对象,您可能希望将DrawingElement
创建为通用:
private static Vector<DrawingElement> vector = new Vector<>();
答案 3 :(得分:0)
在java中你必须在对它做任何操作之前验证对象不是null
。
如果您尝试引用未使用new
运算符创建的对象,则可以
得到NullPointerException
您的问题的解决方案将如下所示
String s1 = "sample string1";
String s2 = "sample string2";
Vector<String> v = new Vector<String>();
v.add(s1);
v.add(s2);
Iterator<String> i = v.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
答案 4 :(得分:0)
这个想法是对象可能尚未初始化。使用代码修复错误
public void add(DrawingElement de) throws IllegalStateException {
if (vector != null) {
vector.addElement(de); // OK //
System.out.println("ADDED!");
} else {
System.out.println("ERROR?!"); // ERROR //
throw new IllegalStateException("ERROR object not initialized");
}
}