是否可以在每次调用构造函数时将项添加到arrayList中?

时间:2014-10-11 09:49:35

标签: java variables arraylist constructor

我在JSP页面中有一个表单。 从JSP页面调用构造函数。

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) {}
}

问题是每次只添加当前号码时,每个新用户输入提交都不会填充数组

2 个答案:

答案 0 :(得分:0)

当然有可能,但是在每次创建新实例的代码中,都会为它创建一个新的ArrayList。你必须改变这个:

private ArrayList arr = new ArrayList();

static变量:

private static ArrayList arr = new ArrayList();

答案 1 :(得分:0)

这是因为每次都会创建一个MainProgram类的新实例,因此会创建一个新的ArrayList(arr)。如果你使arr静态,那么在你创建的任何MainProgram实例中都会有一个实例关闭arr。但是,这不适用于JVM实例化或Web容器有时会执行的某些类加载器操作。如果你真的想要确保捕获所有输入,我会以某种方式将它们写入磁盘。