我有一个问题,我们为什么要在内部类中使用它时设置字段最终?例如,为什么我们应该将textField的修饰符设置为final? 我的问题是,如果我们不宣称它是最终的,为什么它不可用?为什么我们应该将内部类之外的字段的修饰符改为final?
final TextField textField = new TextField();
Button b = new Button();
b.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
textField.setText("hello");
}
});
请参阅Jesper对类似问题的回答 - http://stackoverflow.com/questions/1299837/cannot-refer-to-a-non-final-variable-inside-an-inner-class-defined-in -a-differen –
看到这个。那么你可以清除... http://stackoverflow.com/questions/3910324/why-inner-classes-require-final-outer-instance-variables-java – subash
如果你需要改变这些值的可能性,你总是可以使用'持有人'。 – msangel