java - 使用 ArrayList 作为类中的静态属性?

标签 java oop arraylist

有点挣扎。我已经建立了概念证明并用谷歌搜索但找不到原因。

  1. 我目前正在尝试使用 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/

相关文章:

java - 在 Jenkins 插件中使用 Maven 进行 JUnit 测试

java - 用子类对象的父类(super class)引用覆盖

oop - 为什么我不能对重载 subsref 的类使用内置函数?

java - 如何在java中找到两个arraylist之间的差异

java - 删除一个arraylist中存在于另一个arraylist中的所有对象

java - 无法从 ArrayList 生成随机顺序

java - Play Framework : tool to generate Evolutions scripts?

Java tomcat声音

java - static 修饰符如何影响这段代码?

c# - 覆盖继承中的空方法