En Java, ¿hay alguna forma de utilizar las bibliotecas JDK para descubrir las clases privadas implementadas dentro de otra clase? ¿O necesito usar algo como asm?¿Puedo descubrir las clases internas declaradas de una clase Java utilizando la reflexión?
34
A
Respuesta
46
Class.getDeclaredClasses() es la respuesta.
4
Creo que esto es lo que buscas: Clase. getClasses().
6
package com.test;
public class A {
public String str;
public class B {
private int i;
}
}
package com.test;
import junit.framework.TestCase;
public class ReflectAB extends TestCase {
public void testAccessToOuterClass() throws Exception {
final A a = new A();
final A.B b = a.new B();
final Class[] parent = A.class.getClasses();
assertEquals("com.test.A$B", parent[0].getName());
assertEquals("i" , parent[0].getDeclaredFields()[0].getName());
assertEquals("int",parent[0].getDeclaredFields()[0].getType().getName());
//assertSame(a, a2);
}
}
Cuestiones relacionadas
- 1. Obteniendo todas las clases internas por reflexión
- 2. Clases internas en Java
- 3. Clases internas: Android vs Java
- 4. ¿Las clases internas son livianas?
- 5. ¿Las clases internas de Java representan un riesgo de seguridad?
- 6. ¿Puedo compilar una clase junto con todas sus clases internas en un único archivo de clase?
- 7. ¿El "amigo" de una clase se extiende a las clases declaradas dentro de esa clase?
- 8. ¿Cómo uso las clases internas en PHP?
- 9. Obtener métodos de clase utilizando la reflexión
- 10. ¿Cómo crear clases .NET de alto rendimiento utilizando la reflexión?
- 11. En clases anidadas de Java, ¿puede la clase adjunta acceder a miembros privados de clases internas?
- 12. Java: obtenga una referencia a una clase estática utilizando la reflexión
- 13. error en la definición de las clases internas en una clase de prueba de JUnit
- 14. ¿Cuáles son las clases internas finales?
- 15. ¿Cuáles son los propósitos de las clases internas
- 16. ¿Tiene Python algo así como clases internas anónimas de Java?
- 17. ¿Por qué las clases internas no pueden declarar miembros estáticos?
- 18. Ejecutar pruebas de las clases internas a través de Maven
- 19. Cómo crear una java.util.ArrayList con clase genérica utilizando la reflexión
- 20. Ejemplo de clases internas utilizadas como alternativa a las interfaces
- 21. Las clases internas estáticas necesitan importación para las anotaciones
- 22. Java: crear instancias de una enumeración utilizando la reflexión
- 23. clases internas públicas
- 24. clases internas estáticas en Scala
- 25. Obtenga todas las variables de instancia declaradas en la clase
- 26. Usar clases internas en C#
- 27. Clases internas de Java (anónimas o no): ¿es bueno usarlas?
- 28. Dos preguntas sobre clases internas en Java (clase A {clase B {}})
- 29. ¿Dónde poner clases internas?
- 30. protected/public Clases internas