有点挣扎。我已经建立了概念证明并用谷歌搜索但找不到原因。
- 我目前正在尝试使用 ArrayList 作为类中的静态属性来存储一系列条目。唯一的问题是,每次我尝试添加到 Totalentries 数组列表时,都会收到 nullPointerError。
希望得到一些有关我哪里出错的指导?
我的类(class):
import java.util.ArrayList;
public class Competition {
private static ArrayList totalentries;
public Competition(){
}
public void newEntry(){
totalentries.add("an Entry");
}
}
我的测试代码:
public class testEntries {
/**
* @param args
*/
public static void main(String[] args) {
Competition myComp=new Competition();
myComp.newEntry(); //Null Pointer comes here!
myComp.newEntry();
myComp.newEntry();
myComp.newEntry();
myComp.newEntry();
myComp.newEntry();
myComp.toString();
}
}
最佳答案
您从未在竞赛类中实例化 totalentries
。
你需要这样的东西:
private static ArrayList totalentries = new ArrayList();
但是,请注意,我建议不要保持此“静态”。否则,您创建的每个“竞赛”都将共享相同的条目列表,这可能不是您真正想要的。
此外,使用接口(interface)声明类型,而不是使用类型实例化。您可能还想在此处使用泛型。所以更好(并遵循标准命名约定):
private List<String> totalEntries = new ArrayList<String>();
关于java - 使用 ArrayList 作为类中的静态属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8780233/