繁体   English   中英

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

[英]Bypassing “final local variable defined in an enclosing type”

我正在编写一个程序,得到的是“无法分配最终的局部变量asd,因为它是在封闭类型中定义的”。

我将提供一个并非来自我的代码的示例,但这也会产生错误。 我有一个稍后要使用的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..
            }
        });

清除ArrayList,然后添加值。

你可以这样做:

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();
    }
});

这是一个有用的页面: 链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM