Можем ли мы присвоить переменной значение, указанное в пользовательской аннотации?

#java #selenium-webdriver #annotations

Вопрос:

Я создал пользовательскую аннотацию

 public @interface SearchBy {

    String visibleText() default "";

    public static class SearchByBuilder {
        public String build(Object annotation) {
            SearchBy searchBy = (SearchBy) annotation;
            if (!"".equals(searchBy.visibleText())) {
                return searchBy.visibleText();
            }
            return null;
        }
    }
}
 

Я хочу распечатать, чтобы присвоить значение переменной непосредственно из самой аннотации

 public class Test {
    @searchBy(value = "text")
    String key;

    @Test
    public void script() {
        System.out.println(key); //Should print **text** but still it is printing as Null
    }
}
 

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

 Examples:
@searchBy(value = "A")
String key1;

@searchBy(value = "B")
String key2;
 

Используя инструкцию Print, они должны печатать вместе с другой константой в виде

 "A is an alphabet"
"B is an alphabet"