2

我试图修复所有但仍然给出相同的错误。这是代码,当我尝试将实例添加到发生的向量时。任何想法?

private static Vector<DrawingElement> vector;

public void Add(DrawingElement de) {    
        vector.addElement(de);   // ERROR  //
        System.out.println("ADDED!");       
}
4

6 回答 6

2

你必须初始化你的向量:

private static Vector vector = new Vector();

避免 NullPointerException。初始化后,您将能够添加元素。

于 2013-05-31T11:13:57.247 回答
1

似乎vector变量未初始化。这就是为什么你得到一个NullPointerException.

你必须初始化向量。例如

Vector vector = new Vector();

或者

Vector vector = new Vector(size);  // with the capacity

在您的情况下,您正在向量中添加 DrawingElement 类,因此您必须初始化这样的东西

Vector<DrawingElement> vector = new Vector<DrawingElement>();
于 2013-05-31T11:14:14.507 回答
0

确保你Vector像这样初始化:

private static Vector vector = new Vector();

更好的是,Vector如果它只存储类型的对象,您可能希望创建您的 as generic DrawingElement

private static Vector<DrawingElement> vector = new Vector<>();
于 2013-05-31T11:16:14.017 回答
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");
     }

}
于 2013-05-31T11:27:35.787 回答
0

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());
    }
于 2013-05-31T11:19:45.447 回答
0

解决起来非常简单。 你的代码

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);

}
于 2018-05-10T15:58:35.673 回答