[英]The final local variable cannot be assigned, since it is defined in an enclosing type
[英]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.