tutorial method inner expressions example java this anonymous-class

method - oracle java nested class



Acceda a "esto" desde la clase anĂ³nima de Java (2)

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 a Container.select() desde mi método anónimo de clase '' select() . Sin embargo, this.select() volvería a llamar al método '' select() '' de la clase anónima.

Mi sugerencia sería:

Introducir un campo en el contenedor, por ejemplo

private Container self = this;

Ahora puedo acceder a Container.select() llamando a self.select() desde dentro de la clase anónima.

¿Es esta una manera razonable? ¿O hay alguna forma mejor?


¡Puedes escribir Container.this.select() para distinguirlo de la clase interna!


Container.this.select();