Tengo varias interfaces todas con las mismas constantes: ID y ROOT. También tengo un método en el que paso un objeto que será una implementación de una de estas interfaces.¿Cómo recuperar dinámicamente una constante en Java?
¿Cómo puedo dinámicamente recuperar el valor de la constante que depende de la clase aprobada en - es decir, lo que quiero hacer algo como lo siguiente:
public void indexRootNode(Node node, Class rootNodeClass)
{
indexService.index(node, rootNodeClass.getConstant('ID'),
rootNodeClass.getConstant('ROOT'));
}
En PHP esto es fácil, pero es posible esto en Java ? He visto este problema resuelto usando accessors en la constante, pero quiero recuperar la constante directamente. Las anotaciones no me ayudarán aquí tampoco.
Gracias
Tome un vistazo a la reflexión – willcodejavaforfood
favor, eche un vistazo a esta pregunta sobre el almacenamiento de las constantes en interfaces: http://stackoverflow.com/questions/1372991/should-a-collection-of-constants-be-placed-in-a-class-or-interface La mayoría de las personas está de acuerdo en que una interfaz no es una buena entidad para constantes de tienda –
Gracias, no había visto eso. Las interfaces que he creado no son colecciones de constantes. Pude pensar en agregar métodos de acceso a la interfaz, pero por brevedad creo que en este caso es más simple agregar constantes a la interfaz. –