Java аннотация - PullRequest
       1

Java аннотация

0 голосов
/ 21 мая 2018

какие будут правильные значения аннотации Java вместо следующих?

@interface Demo
{
    Class obj();
    String class_name();
}
...
...
@Demo(obj=Class.forName("Example"),class_name=obj.getName())

Я получаю сообщение об ошибке, поскольку "значение аннотации должно быть литералом класса"

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Значения, передаваемые аннотациям, должны быть известны во время компиляции, поэтому вы не можете использовать такие вызовы, как Class.forName.Вместо этого вы можете использовать класс напрямую:

@Demo(obj = Example.class, class_name="com.exmaple.Example")
0 голосов
/ 21 мая 2018

Аннотации должны быть постоянными во время компиляции.Поэтому методы не допускаются.

Приведенную выше аннотацию можно сделать с помощью этого:

@Demo(obj=Example.class, class_name="Example")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...