En Java, est-il possible d'utiliser les bibliothèques JDK pour découvrir les classes privées implémentées dans une autre classe? Ou ai-je besoin d'utiliser quelque chose comme asm?Puis-je découvrir les classes internes déclarées d'une classe Java en utilisant la réflexion?
34
A
Répondre
46
Class.getDeclaredClasses() est la réponse.
4
Je pense que c'est ce que vous cherchez: Classe. 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);
}
}
Questions connexes
- 1. Comment comparer des classes en utilisant la réflexion?
- 2. Deux questions sur les classes internes en Java (classe A {class B {}})
- 3. java comparer des objets: en utilisant la réflexion?
- 4. Quels sont les problèmes avec les classes internes non statiques et la sérialisation en Java
- 5. PHP afficher les noms de toutes les classes déclarées?
- 6. classes internes statiques dans scala
- 7. Réflexion Java getDeclaredMethod() avec les types de classes
- 8. Est-ce que Python a quelque chose comme les classes internes anonymes de Java?
- 9. Validation des instances de classes internes
- 10. java classes internes noms de fichiers trop longs
- 11. Exposer des classes internes en s'obscurcissant avec ProGuard
- 12. Subclassing intérieure de classe de la classe externe par rapport aux autres classes internes
- 13. Y at-il un moyen pour que les classes internes anonymes de Java "perdent" leur portée?
- 14. Comment obtenir les propriétés d'un objet en utilisant la réflexion?
- 15. Chargement de classe dynamique en Java (énumération)
- 16. Insertion prioritaire LinqToSql avec classes internes C#
- 17. Comment puis-je vérifier si une méthode est statique en utilisant la réflexion?
- 18. Java Génériques et réflexion!
- 19. Dans quel ordre les classes doivent-elles être déclarées en C++?
- 20. Désactiver la réflexion Java pour le thread en cours
- 21. Appeler une méthode utilisant la réflexion
- 22. traverser les classes en utilisant Jquery
- 23. Enregistrer une classe dans un fichier delim en utilisant la réflexion
- 24. .NET/C# - Aide à la réflexion - Classes dans un assemblage
- 25. Invoquer la méthode des génériques surchargés en utilisant la réflexion
- 26. Comment pouvez-vous hériter d'une classe scellée en utilisant la réflexion dans .Net?
- 27. Python réflexion super classe
- 28. Mauvaise performance en remplaçant la classe Java?
- 29. Puis-je compiler des classes anonymes ou internes dans un seul fichier java .class?
- 30. Comment puis-je déterminer si une classe Java est abstraite par réflexion