绕过“在封闭类型中定义的最终局部变量”

时间:2014-10-22 20:07:59

标签: java javafx

我正在编写一个程序并且我得到了这个"最终的局部变量asd无法分配,因为它是在封闭类型中定义的。#/ p >

我将提供一个不是来自我的代码的示例,但这会产生错误。我有一个arraylist,我想稍后使用(如果我在按钮内定义它我以后不能使用它),在按钮之外,但按下按钮应该给这个arraylist值。在这个例子中,它将创建一个新的ArrayList"这会导致同样的问题。

        Button btn = new Button("ASD");
        final ArrayList asd = new ArrayList();
        btn.setOnAction(new EventHandler<ActionEvent>() {
            public void handle(final ActionEvent event) {
                asd = new ArrayList(); //here's the error..
            }
        });

2 个答案:

答案 0 :(得分:1)

清除ArrayList,然后添加值。

答案 1 :(得分:0)

你可以这样做:

Button btn = new Button("ASD");
final ArrayList[] asd = new ArrayList[1];
asd[0] = new ArrayList();
btn.setOnAction(new EventHandler<ActionEvent>() {
    public void handle(final ActionEvent event) {
        asd[0] = new ArrayList();
    }
});

这是一个有用的页面:link