我试图修复所有但仍然给出相同的错误。这是代码,当我尝试将实例添加到发生的向量时。任何想法?
private static Vector<DrawingElement> vector;
public void Add(DrawingElement de) {
vector.addElement(de); // ERROR //
System.out.println("ADDED!");
}
我试图修复所有但仍然给出相同的错误。这是代码,当我尝试将实例添加到发生的向量时。任何想法?
private static Vector<DrawingElement> vector;
public void Add(DrawingElement de) {
vector.addElement(de); // ERROR //
System.out.println("ADDED!");
}
你必须初始化你的向量:
private static Vector vector = new Vector();
避免 NullPointerException。初始化后,您将能够添加元素。
似乎vector
变量未初始化。这就是为什么你得到一个NullPointerException
.
你必须初始化向量。例如
Vector vector = new Vector();
或者
Vector vector = new Vector(size); // with the capacity
在您的情况下,您正在向量中添加 DrawingElement 类,因此您必须初始化这样的东西
Vector<DrawingElement> vector = new Vector<DrawingElement>();
确保你Vector
像这样初始化:
private static Vector vector = new Vector();
更好的是,Vector
如果它只存储类型的对象,您可能希望创建您的 as generic DrawingElement
:
private static Vector<DrawingElement> vector = new Vector<>();
这个想法是对象可能尚未初始化。使用代码修复错误
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");
}
}
null
在 java 中,您必须在对其进行任何操作之前验证对象是否不在。如果你试图引用一个不是使用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());
}
解决起来非常简单。 你的代码
private static Vector<DrawingElement> vector;
public void Add(Vector<String> de) {
vector.addElement(de); // ERROR //
System.out.println("ADDED!");
}
我的代码
vector <String> vector= new Vector();
public void Add(DrawingElement de) {
vector.add(de);
}