Dato il seguente codice:Access "questo" da Java classe anonima
public interface Selectable {
public void select();
}
public class Container implements Selectable {
public void select() {
...
}
public void createAnonymousClass() {
Selectable s = new Selectable() {
public void select() {
//see comment below.
}
};
}
}
voglio accedere Container.select()
da dentro il mio classe anonima select()
metodo. Tuttavia, this.select()
chiamerebbe nuovamente il metodo della classe anonima "select()
".
Il mio suggerimento sarebbe:
Introdurre un campo nel contenitore, per esempio
private Container self = this;
Ora posso accedere Container.select()
chiamando self.select()
dall'interno della classe anonima.
È un modo ragionevole? O ci sono modi migliori?
Ora è qualcosa di completamente nuovo per me. –
Non sapevo nemmeno che "questo" parole chiave potessero essere differenziati proprio come possono fare i metodi e gli attributi. +1 –
Va notato che devi specificare esattamente la classe 'Container' qui. Nessuno dei suoi antenati non sarà accettato. – velis