2014-10-11 57 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容器有时执行的某些类加载器操作。如果你确实想要捕获所有输入,我会以某种方式将它们写入磁盘。

相关问题