イベント処理や内部クラスでメンバー変数にアクセスする
イベント処理で何か処理をするときにメンバー変数にアクセスしたいときがあるとすると
Class classA
{
int variable;
add***Listener(new ***Adapter() {
public void someMethodInListenerClass(***Event e) {
variable = 10;
}
});
}
のような感じではダメで、
variable = 10;
を
classA.this.variable = 10;
にしなくてはいけない。
これを避けたい場合、classAに目的のListenerクラスをimplementsして、メソッドをオーバーライドするか、
Class classA implements ***Listener
{
int variable;
add***Listener(this);
public void someMethodInListenerClass(***Event e) {
variable = 10;
}
}
ほとんど同じようなものかもしれないが、メソッドを新たに作って内部クラスから呼び出すといい。
Class classA
{
int variable;
add***Listener(new ***Adapter() {
public void someMethodInListenerClass(***Event e) {
methodA(10);
}
});
void methodA(int i) {
variable = i;
}
}
アテイン Java講座入門編 上巻 ATTE-570 Java講座入門編 上巻
アテイン Java講座入門編 中巻 ATTE-571 Java講座入門編 中巻