【发布时间】:2016-05-04 09:14:17
【问题描述】:
请在将其标记为重复之前阅读该帖子。
我不是 Java 专家
这是我正在尝试做的简化代码:
import java.util.ArrayList;
public class Parameter {
private static ArrayList<Integer> quantityArray = new ArrayList<>();
public static void quantityPriorityValues() {
int q = 0 ;
for (int i = 0; i < 5 ; i++ ) {
quantityArray.add(q);
q++;
}
}
public static ArrayList<Integer> getQuantityArray() {
return quantityArray;
}
public void setQuantityArray(ArrayList<Integer> quantityArray) {
this.quantityArray = quantityArray;
}
}
public class Connection {
public void getParameters () {
i = 0;
Parameter.quantityPriorityValues();
while (i < 5) {
int quantity = Parameter.getQuantityArray().get(i);
System.out.println(quantity);
i++;
}
}
}
它总是打印出数组列表的最后一个值。
我检查了关于这个问题的答案,比如这个one和这个one,他们都说staticfields中的问题。所以我试图从ArrayList<Integer> quantityArray中删除static,但这意味着getter 和 setter 也应该是 non-static,我将无法在 Connection 类中调用 getter。
我想要这个输出:0 1 2 3 4
但我得到这个输出:4
有人有其他解决方案吗?
【问题讨论】:
-
您能否添加预期的输出和您得到的输出?
-
请包含您的主要方法,以便我们可以看到您在哪里初始化列表。
-
确实 - 理想情况下,将其重写为 minimal reproducible example。
-
@StepTNT 我编辑了我的问题
-
@Eran :实际上这两个类是 JDialog 类,在我的主要方法中,我只是创建该类的一个新实例并将其设置为可见。