您好我想创建一个包含具有相同类的数组的类。
我尝试使用下面指定的代码,但我创建的数组是无限的。
public class State {
private String Valor1;
private String Valor2;
private ArrayList arrayStatesAnteriores;
}
我做了这个集合,并获得了netbeans的重构
state.setArrayStatesAnteriores(arrayStateAnteriores);
但我有阵列无限的问题。有什么想法吗?
答案 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
类,它有两个字段value1
和value2
一个构造函数,它将两个字段设置为传递的值:
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.
}
}
希望有任何问题可以随意提出。