【问题标题】:Is it possible to add items to an arrayList each time a constructor is called?每次调用构造函数时是否可以将项目添加到arrayList?
【发布时间】:2014-12-06 10:39:46
【问题描述】:

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

问题是每次只添加当前数字时,数组永远不会填充每个新的用户输入提交

【问题讨论】:

    标签: java variables arraylist constructor


    【解决方案1】:

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

    private ArrayList arr = new ArrayList();
    

    static 变量:

    private static ArrayList arr = new ArrayList();
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-09
        • 2019-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多