У меня есть несколько интерфейсов с одинаковыми константами - ID и ROOT. У меня также есть метод, в который я передаю объект, который будет реализацией одного из этих интерфейсов.Как динамически извлекать константу в java?
Как динамически получить значение константы в зависимости от класса принят в - то есть я хочу сделать что-то вроде следующего:
public void indexRootNode(Node node, Class rootNodeClass)
{
indexService.index(node, rootNodeClass.getConstant('ID'),
rootNodeClass.getConstant('ROOT'));
}
В PHP это легко, но это возможно в Java ? Я видел, что эта проблема решена с помощью accessors на константе, но я хочу получить константу напрямую. Аннотации мне тоже не помогут.
Благодаря
Посмотрите на отражение – willcodejavaforfood
Пожалуйста, обратите внимание на этот вопрос о хранении константы интерфейсы: http://stackoverflow.com/questions/1372991/should-a-collection-of-constants-be-placed-in-a-class-or-interface Большинство людей согласны с тем, что интерфейс не является хорошим объектом для постоянные хранилища. –
Спасибо, я этого не видел. Созданные интерфейсы не являются наборами констант. Я мог подумать о добавлении методов доступа к интерфейсу, но для краткости я думаю, что в этом случае проще добавить константы в интерфейс. –