Dado el siguiente código:
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.
}
};
}
}
Quiero acceder Container.select()
desde el select()
método de mi clase anónima . Sin embargo, this.select()
volvería a llamar al select()
método de la clase anónima .
Mi sugerencia sería:
Introducir un campo en el contenedor, p. Ej.
private Container self = this;
Ahora puedo acceder Container.select()
llamando self.select()
desde dentro de la clase anónima.
¿Es esta una forma razonable? ¿O hay mejores formas?
this
palabras clave podían diferenciarse del mismo modo que los métodos y los atributos. +1