Digamos que tenemos un nombre de clase Home. ¿Cuál es la diferencia entre Home.this y Home.class? ¿A qué se refieren?Significado de .this y .class en java
Respuesta
home.This
Home.this
refiere a la instancia actual de la clase Home
.
El término formal para esta expresión parece ser el Qualified this, como se menciona en la Sección 15.8.4 de la Especificación del lenguaje Java.
En una clase simple, decir Home.this
y this
será equivalente. Esta expresión solo se usa en casos donde hay una clase interna, y uno necesita referirse a la clase adjunta.
Por ejemplo:
class Hello {
class World {
public void doSomething() {
Hello.this.doAnotherThing();
// Here, "this" alone would refer to the instance of
// the World class, so one needs to specify that the
// instance of the Hello class is what is being
// referred to.
}
}
public void doAnotherThing() {
}
}
Home.class
Home.class
volverá la representación de la clase Home
como un objeto Class
.
El término formal para esta expresión es class literal, como se menciona en la Sección 15.8.2 de la Especificación del lenguaje Java.
En la mayoría de los casos, esta expresión se usa cuando se usa reflection, y necesita una forma de referirse a la clase en sí misma en lugar de una instancia de la clase.
Home.class
devuelve la instancia de java.lang.Class<Home>
que corresponde a la clase Home
. Este objeto le permite reflexionar sobre la clase (averiguar qué métodos y variables tiene, cuál es su clase principal, etc.) y crear instancias de la clase.
Home.this
solo tiene sentido si se encuentra dentro de una clase anidada de Inicio. Aquí Home.this
devolverá el objeto de la clase Home
en el que está anidado el objeto de la clase anidada.
- 1. Significado de la palabra clave "this" en jQuery Vs MVC
- 2. diferencia entre java bean y java class?
- 3. ¿Cuál es el significado de sintaxis de "` class declaration head` {val_name: Type => `class body`}"
- 4. "synchronized (this)" vs. "synchronized ((BaseClass) this)" en Java?
- 5. ¿Cuál es el significado real de la palabra clave "this"?
- 6. Java ".addActionListener (this)"
- 7. java this (null)
- 8. Java Class File Editor
- 9. Eager java class loading
- 10. ¿Cuál es la diferencia entre "this", "$ this" y "$ (this)"?
- 11. .class vs .java
- 12. Significado de! en la sintaxis de Java
- 13. Uso de ClassPathXmlApplicationContext en Standalone Java class
- 14. Significado de * & y ** & en C++
- 15. Bloque sincronizado de Java para .class
- 16. setTimeout y "this" en JavaScript
- 17. constructores this() y base() en C#
- 18. ¿Cuál es el significado de "esto" en Java?
- 19. shared_ptr y el puntero this
- 20. ¿Qué significa $ this en PHP?
- 21. Java inner class and inheritance
- 22. Java Client .class File Protection
- 23. Java: cuándo utilizar la palabra clave 'this'
- 24. java -like friend class mechanism
- 25. Java Utility Class vs. Service
- 26. Carga de archivos con Selenium WebDriver y Java Robot Class
- 27. Herramienta para leer y visualizar versiones .class de Java
- 28. Coffeescript timer y 'this' puntero en callback
- 29. ¿Qué es JavaBeans plain-vanilla & plain-vanilla Java Class?
- 30. PermGen y Pila, Diferencia y su significado
¡Gran explicación! –
¿Hay alguna manera similar de hacer esto en C# también? – moorara
@MiladIrannejad No como NestingClass.this. Ver http://stackoverflow.com/a/185144/1986241 – Suzi