使用相同类的变量(arrayList)创建Java类

时间:2012-01-20 15:55:02

标签: java class arraylist

您好我想创建一个包含具有相同类的数组的类。

我尝试使用下面指定的代码,但我创建的数组是无限的。

public class State {

private String Valor1;
private String Valor2;
private ArrayList arrayStatesAnteriores;

}

我做了这个集合,并获得了netbeans的重构

state.setArrayStatesAnteriores(arrayStateAnteriores);

但我有阵列无限的问题。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

使用List初始化

public class State {
  private List<State> statesAnteriores = new ArrayList<State>();
}

答案 1 :(得分:2)

首先,只需要对您的代码进行一些调整:

这样就是

public class State {

    private String Valor1;
    private String Valor2;
    private List<State> arrayStatesAnteriores;



}

关于你的问题,“数组是无限的”是什么意思? 你的意思是你设置它后null

state.setArrayStatesAnteriores(arrayStateAnteriores);

原因可能是您使用自身设置列表的值,该值为空。

尝试这样的事情:

state.setArrayStatesAnteriores(new ArrayList<State>());

答案 2 :(得分:2)

这是我理解的方式:你有一个代表一个特定时刻的程序状态的类,你想保留一个程序所具有的状态列表,这就是你的原因说这是一个无限的名单。

首先是State类,它有两个字段value1value2一个构造函数,它将两个字段设置为传递的值:

public class State {

    /**
     * This is the constructor 
    */
    public State(String value1, String value2){
        this.value1 = value1;
        this.value2 = value2;
    }

    // Omiting getters/setters for brevety.
    // This will be set by the constructor using the values that it
    // receives as arguments 
    // e.g
    // new State("My Val1","My Val2");
    private String value1;
    private String value2;
}

然后这个类将包含在States

的数组中
List<State> states =  new ArrayList<States>();

然后,您将在主要课程或其他课程中使用此课程:

import State;
public class Program {

    // This array holds the states that the program has had.
    private static List<State> states =  new ArrayList<State>();
    public static void main(String[] args){
        // ...
        // Do something
        // ...

        // Save the states
        states.add(new State("State 1","Value 1"))
        // Save another state
        states.add(new State("State 2","Value 2"))
        // The arraylist  now contains two states of the program.
    }

}

希望有任何问题可以随意提出。