我试图修复所有但仍然给出相同的错误。这是代码,当我尝试将实例添加到发生的向量时。任何想法?
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);
}