我正在使用事件派发线程更新各种swing组件。然而,当我像做以下我得到一个错误 -'局部变量需要声明为final'用于事件派发线程
public Foo(User user) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
getNameTextField.setText(user.getName());
}
});
}
的错误 - “局部变量用户从内部类访问;需要被声明为final”
什么是标准的解决方案对此...只是在每个函数参数之前放置最终?
现在显然我不想声明我的实际用户对象final,因为我将来可能需要修改它。但是可以在函数参数中设置用户对象的最终值吗?
但是当我将它设置为final时,我实际上在做什么,因为这是对我的程序中的'main'用户对象的引用。所以同一个对象在一个地方被宣布为最终的,但在另一个地方不是最终的。是否声明它最终只是表示对它的引用是最终的,但用户对象本身可以自由修改?