J'ai plusieurs interfaces avec les mêmes constantes - ID et ROOT. J'ai aussi une méthode dans laquelle je passe un objet qui sera une implémentation de l'une de ces interfaces.Comment faire pour récupérer dynamiquement une constante dans Java?
Comment puis-je récupérer dynamiquement la valeur de la constante en fonction de la classe adoptée en - à savoir que je veux faire quelque chose comme ce qui suit:
public void indexRootNode(Node node, Class rootNodeClass)
{
indexService.index(node, rootNodeClass.getConstant('ID'),
rootNodeClass.getConstant('ROOT'));
}
En PHP cela est facile, mais est-ce possible en Java ? J'ai vu ce problème résolu en utilisant des accesseurs sur la constante, mais je veux récupérer la constante directement. Les annotations ne m'aideront pas non plus ici.
Merci
Jetez un oeil à la réflexion – willcodejavaforfood
S'il vous plaît jeter un oeil à cette question sur le stockage des constantes dans interfaces: http://stackoverflow.com/questions/1372991/should-a-collection-of-constants-be-placed-in-a-class-or-interface La plupart des gens sont d'accord, qu'une interface n'est pas une bonne entité pour constantes de stockage. –
Merci, je n'avais pas vu ça. Les interfaces que j'ai créées ne sont pas des collections de constantes. Je pourrais penser à ajouter des méthodes d'accesseur à l'interface, mais par souci de brièveté je pense que dans ce cas il est plus simple d'ajouter des constantes à l'interface. –