添加到静态成员字段
Adding to a static member field
我无法理解静态成员字段。我有这段代码:
Stats.java
private static List<Stats> staTest = new ArrayList<Stats>();
private String test, test2;
public Stats() {
staTest.add(new Stats("foo", "bar"));
}
public Stats(String de, String mo) {
staTest.add(new Stats(de, mo));
}
public String getTest(int i) {
return staTest.get(i).test;
}
public void setTest(String t, int i) {
staTest.get(i).test = t;
}
在我的另一个class:
private String foo, bar;
Stats sta;
public void something(String f, String b)
{
sta = new Stats(f, b);
}
我在这一行收到 Whosebug 错误:staTest.add(new Stats(de, mo))。请帮助我理解静态变量和调用。谢谢。
您的问题与静态无关,而与您在 Stats 对象构造函数中创建新的 Stats 对象有关。此设置最终将创建无穷无尽的 Stats 对象,直到您 运行 堆栈内存不足并且您的程序抛出 Whosebug 错误。不要这样做。
也许可以添加 this
public Stats() {
staTest.add(this);
}
public Stats(String de, String mo) {
this.test = de;
this.test2 = mo;
staTest.add(this);
}
我无法理解静态成员字段。我有这段代码:
Stats.java
private static List<Stats> staTest = new ArrayList<Stats>();
private String test, test2;
public Stats() {
staTest.add(new Stats("foo", "bar"));
}
public Stats(String de, String mo) {
staTest.add(new Stats(de, mo));
}
public String getTest(int i) {
return staTest.get(i).test;
}
public void setTest(String t, int i) {
staTest.get(i).test = t;
}
在我的另一个class:
private String foo, bar;
Stats sta;
public void something(String f, String b)
{
sta = new Stats(f, b);
}
我在这一行收到 Whosebug 错误:staTest.add(new Stats(de, mo))。请帮助我理解静态变量和调用。谢谢。
您的问题与静态无关,而与您在 Stats 对象构造函数中创建新的 Stats 对象有关。此设置最终将创建无穷无尽的 Stats 对象,直到您 运行 堆栈内存不足并且您的程序抛出 Whosebug 错误。不要这样做。
也许可以添加 this
public Stats() {
staTest.add(this);
}
public Stats(String de, String mo) {
this.test = de;
this.test2 = mo;
staTest.add(this);
}