0
我把我的代碼的一部分,我認爲是問題的根源,但我無法弄清楚爲什麼我現在在StackOverFlow。反正這個類是我設置我的數據並將其傳遞給數組的地方。數組結果不斷得到最後的結果
public ArrayList<select.rates> caseGetRates() throws RateTableException, SessionDisconnectedException {
try {
for(int i=0;i < arrayRate.size();i++){
ArrayList<select.rates> arr = new ArrayList<select.rates>();
this.setPair(array[0]);
this.setBid((array[2]));
this.setAsk((array[3]));
arr.add(this);
}
return arr;
} finally{}
}
當我System.out.print
我在這個類中設置的數據它給了我:
EUR/USD
1.12372
1.12384
USD/JPY
100.622
100.641
這是正確的,我想什麼,當我通過它顯示在我的webpage.However數據我Servlet
try {
ArrayList<select.rates> rates = example.caseGetRates();
for(int i=0;i < rates.size();i++){
System.out.println("");
System.out.println(rates.get(i).getPair());
System.out.println(rates.get(i).getBid());
System.out.println(rates.get(i).getAsk());
}
request.setAttribute("rates", rates);
}
request.getRequestDispatcher("/NewFile.jsp").forward(request, response);
結果我得到我的Servlet是:
USD/JPY
100.622
100.641
USD/JPY
100.622
100.641
結果不會循環兩次,但數據似乎被覆蓋,我仍然不知道爲什麼會發生這種情況。我希望有人能指出我的錯誤。
您修改同一個對象(''this''),然後將其添加多個次'使用''arr.add(this);''。 – f1sh
檢查arr局部變量的範圍。它應該在for循環之外,所以你可以返回它。同時創建這個新的對象,設置它並添加到Arraylist。 –
您首先回顧並瞭解Java的基本基礎知識。就像將**相同的**對象反覆添加到某個集合時發生的情況一樣。當你甚至不明白當你使用* this *的方式時會發生什麼,不要讓JSP和servlet負擔過重。 – GhostCat