請在將其標記爲重複之前閱讀該帖子。我總是得到ArrayList的最後一個值
和我不是一個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,他們都說這個問題在static
fields.So我試圖從ArrayList<Integer> quantityArray
中刪除static
,但這意味着getter和setters也應該是non-static
而我也將無法呼叫Connection
課程中的獲得者。
我想這樣的輸出:0 1 2 3 4
但我得到這樣的輸出:4
沒有人有另一種解決辦法?
能否請你加上預計輸出和你得到的那個? – StepTNT
請包括你的主要方法,所以我們可以看到你初始化列表的位置。 – Eran
事實上 - 理想情況下,將其重寫爲[mcve]。 –