我在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) {}
}
问题是每次只添加当前号码时,每个新用户输入提交都不会填充数组
答案 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容器有时会执行的某些类加载器操作。如果你真的想要确保捕获所有输入,我会以某种方式将它们写入磁盘。