J'avais deux classes Java: classe A et classe B, les deux dans le même paquet. Maintenant, j'ai fait deux objets de classe A dans la classe B, et maintenant à partir de la classe A, je veux que le nom des objets de la classe A soit déclaré dans la classe B.
Comment faire?Comment obtenir le nom d'objet de la classe?
Répondre
Une méthode serait pour la classe B pour passer un « nom » de la Une instance au constructeur de A:
public class A {
public A(String name) {
this.name = name;
}
private final String name;
}
De cette façon, chaque instance de A va connaître le nom qu'il a été attribué (par quiconque l'a construit).
Notez qu'il n'y a aucun moyen pour A de trouver le nom de la variable qui est actuellement utilisée pour s'y référer. En effet, les variables de référence peuvent être affectées à volonté:
A foo = new A(); // A's name could be considered to be "foo"
A bar = foo; // now, is A's name "foo" or is it "bar"? (It's both!)
foo = null; // and now, it's only referred by "bar".
Voulez-vous le 'nom' des objets ou des références aux objets? Vous pouvez demander aux constructeurs de classe B d'enregistrer tous les objets créés avec la classe A. Si vous pouvez fournir plus d'informations sur ce que vous voulez faire avec les objets de classe B dans la classe A, nous pourrons peut-être mieux répondre à votre question.
acclame.
Vous pouvez faire quelque chose comme ceci:
public class NameRetriever {
public static List<String> retrieveNames(Class<?> ownerClass, Class<?> clazzToFind) {
List<String> names = new ArrayList<String>();
for (Field field : ownerClass.getDeclaredFields()) {
if (field.getType().getName().equals(clazzToFind.getName())) {
names.add(field.getName());
}
}
return names;
}
}
NameRetriever.retrieveNames(ClassB.class, ClassA.class);
Ce trouverait toutes les variables membres de type ClassA contenus dans la classe ClassB. Si vous souhaitez obtenir les valeurs d'un objet instancié, vous pouvez remplacer le paramètre ownerClass par 'Object object' et obtenir la valeur du champ au lieu du nom.
- 1. Comment obtenir le nom de la classe
- 2. php obtenir le nom de la classe
- 3. Comment obtenir le nom de la classe appelante en Java?
- 4. Comment obtenir le nom de la classe en utilisant jquery
- 5. comment puis-je obtenir le nom de la classe?
- 6. Comment obtenir le nom d'une classe Ruby?
- 7. Obtenir le nom de la classe à partir d'une instance
- 8. Comment obtenir un nom de classe?
- 9. Comment obtenir le nom d'une propriété de classe?
- 10. plusieurs événements de classe ensemble, comment obtenir le nom de la classe actuelle
- 11. trouver le nom de classe
- 12. Ruby: Comment obtenir une classe basée sur le nom de la classe et comment puis-je obtenir le champ de l'objet en fonction du nom du champ?
- 13. Comment obtenir le nom d'une classe Mootools depuis
- 14. Comment puis-je obtenir le nom d'une classe python?
- 15. Comment puis-je obtenir un nom de méthode avec l'espace de nom et le nom de la classe?
- 16. Récupère le nom de classe de la classe étendue
- 17. Comment puis-je obtenir facilement le nom d'une classe Scala?
- 18. obtenir le nom de la méthode d'appel
- 19. Doctrine 2 obtenir le vrai nom de classe de la classe proxy
- 20. Comment obtenir le nom de test Fitnesse
- 21. Obtenir le dernier nom de classe d'un tableau avec jquery
- 22. YUI Obtenir le nom de classe par l'ID
- 23. Comment obtenir un nom de classe rubis et le nom de domaine sur des rails
- 24. C# Obtenir le nom du type dérivé à partir de la classe de base interne Classe
- 25. obtenir l'assemblage par nom de classe
- 26. Obtenir le nom de classe dynamique avec jquery
- 27. Comment obtenir un objet d'une classe inconnue avec le nom de classe donné
- 28. Vérifier le nom de la classe
- 29. Obtenir le nom de la variable Get
- 30. Comment appeler une méthode statique d'une classe en utilisant le nom de la méthode et le nom de la classe
N'est-ce pas une simple reformulation de l'autre question que vous avez posée récemment? http://stackoverflow.com/questions/1932164/how-to-get-the-object-reference-of-a-class – abyx