2014-10-11 18 views
-1

我在JSP頁面中有一個表單。 從JSP頁面調用構造函數。每次調用構造函數時,是否可以向arrayList添加項目?

MainProgram main = new MainProgram(input); 

我想與getParameter()添加用戶輸入並把它傳遞給構造函數,它 轉換爲int,並將其添加到ArrayList

private static int number; 

private ArrayList arr = new ArrayList(); 

public MainProgram (String input) {  

    try {   
     arr.add(number = Integer.parseInt(input));    
    } 
    catch (NumberFormatException e) {} 
} 

的問題是,每個被添加只有當前數字時,該陣列是從來沒有填充每個新用戶輸入提交

回答

0

當然是可能的,但在你的代碼的每一個新的時間實例已創建,則爲其創建新的ArrayList。您必須更改此:

private ArrayList arr = new ArrayList(); 

static變量:

private static ArrayList arr = new ArrayList(); 
+0

@Aaron如果它可以幫助你,請upvote而不是評論。 – msrd0 2014-10-11 10:05:37

0

這是因爲類Ma​​inProgram(主程序)的新實例創建的每個時間,因此新的ArrayList(ARR)。如果您使arr靜態,那麼跨創建的任何MainProgram實例將會有一個實例關閉arr。但是,這不適用於JVM實例化或Web容器有時執行的某些類加載器操作。如果你確實想要捕獲所有輸入,我會以某種方式將它們寫入磁盤。

相關問題