Передайте переменную @Optional Annotation - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь передать объект pathToJsonFileAppCreate в качестве необязательного параметра, используя @Optional аннотацию.

 public static final String pathToJsonFileAppCreate = fprUploadBundle.getString("pathToJsonFile");

 @Parameters({"pathToJsonFileAppCreate"})
 @BeforeSuite
    public void SuiteSetup(@Optional(pathToJsonFileAppCreate) String pathToJsonFileAppCreate) {

Хотя объект должен быть постоянным (см. Объявление), я все еще получаю ошибку: «значение элемента должно быть константным выражением» В основном я пытаюсь загрузить значение либо из файла свойств (если значение параметра не определено в xml), либо из файла xml.

1 Ответ

0 голосов
/ 26 апреля 2019

Аннотации оцениваются во время компиляции. Вы говорите, что object should be constant, но это, очевидно, не так

pathToJsonFileAppCreate = fprUploadBundle.getString("pathToJsonFile");

Компилятор не может знать, что будет возвращено во время выполнения. Если вы считаете значение постоянным, поместите эту константу туда.

Вы можете теоретически изменить значение во время выполнения (https://www.baeldung.com/java-reflection-change-annotation-params),), но вам необходимо убедиться, что вы делаете это до того, как все эти аннотации еще не запускались.

В любом случае, похоже, что вы неправильно используете аннотацию. Из какой библиотеки происходит аннотация?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...