添加到Vector时出现NullPointerException

时间:2013-05-31 11:12:00

标签: java exception nullpointerexception

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

private static Vector<DrawingElement> vector;

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

5 个答案:

答案 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");
     }

}