Actualmente estoy creando una referencia explícita a esto en la clase externa para que tenga un nombre al que hacer referencia en la clase interna anónima. ¿Hay una mejor manera de hacer esto?¿Cómo se obtiene una referencia a la clase adjunta de una clase interna anónima en Java?
47
A
Respuesta
85
Acabo de encontrar este recientemente. Use OuterClassName.this
.
class Outer {
void foo() {
new Thread() {
public void run() {
Outer.this.bar();
}
}.start();
}
void bar() {
System.out.println("BAR!");
}
}
Actualizado Si lo que desea es el objeto en sí (en lugar de los miembros de la invocación), entonces Outer.this
es el camino a seguir.
19
Uso EnclosingClass.this
1
Puede seguir utilizando Outer.class para obtener la clase del objeto de la clase externa (que devolverá el mismo objeto Class como Outer.this.getClass(), pero es más eficiente)
Si desea acceder statics en la clase adjunta, puede usar Outer.name donde name es el campo o método estático.
Cuestiones relacionadas
- 1. Anotar clase interna anónima
- 2. Clase interna privada sintetiza clase anónima inesperada
- 3. Clase interna anónima vacía en java
- 4. Referencia de clase para una clase interna Java
- 5. Java: clase interna anónima usando una variable local
- 6. Acceso campo de una clase anónima exterior de una clase anónima interna
- 7. volver más de una instancia de una clase interna anónima
- 8. ¿Cómo puedo obtener una clase interna para heredar el tipo genérico de la clase adjunta?
- 9. java.lang.NoClassDefFoundError: en la clase interna anónima
- 10. Java - Ciclo de vida de la clase interna anónima
- 11. Una clase interna retorcida en Java
- 12. ¿Cómo hacer referencia a la clase externa en otra instancia de una clase interna no estática?
- 13. ¿Cómo agregar @SerialVersionUID a una clase anónima?
- 14. C#: ¿cómo se obtiene una clase base de clase?
- 15. ¿Cómo se puede acceder a "esto" de la clase externa desde una clase interna?
- 16. Java: llamando al método de la clase externa en la clase interna anónima
- 17. ¿Cuáles son las ventajas de la clase interna anónima (en comparación con la clase interna no anónima)?
- 18. ¿Por qué es imposible en java referir una variable no final en una clase anónima interna?
- 19. de palabra clave para la clase externa de una clase interna anónima
- 20. En ActionScript3, ¿cómo se obtiene una referencia a la clase de un objeto?
- 21. Creando una instancia de la clase interna
- 22. probando una clase interna
- 23. Instantiating una clase interna
- 24. ¿Cómo refactorizar una clase interna estática a una clase de nivel superior en Eclipse?
- 25. cómo acceder a una variable de clase de la clase externa de clase interna en rubí
- 26. Java implementa la interfaz genérica de una clase anónima
- 27. Clase estática interna en Java
- 28. ¿Propósito de una clase interna?
- 29. ¿Cómo implementa Java los cierres de clase interna?
- 30. Refiriéndose al tipo de una clase interna en Scala
¡GRACIAS! Esto me ha estado molestando por mucho tiempo. Me alegro de que la respuesta fuera una búsqueda rápida de Google. – aglassman