Diberikan kode berikut:
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.
}
};
}
}
Saya ingin mengakses Container.select()
dari dalam select()
metode kelas anonim saya . Namun, this.select()
akan kembali memanggil metode kelas anonim select()
.
Saran saya adalah:
Perkenalkan bidang ke dalam Kontainer, mis
private Container self = this;
Sekarang saya dapat mengakses Container.select()
dengan menelepon self.select()
dari dalam kelas anonim.
Apakah ini cara yang masuk akal? Atau ada cara yang lebih baik?
this
kata kunci dapat dibedakan seperti halnya metode dan atribut dapat. +1Container
kelas yang tepat di sini. Semua leluhurnya tidak akan diterima.Anda dapat menulis
Container.this.select()
berbeda dari kelas dalam!sumber