Как получить значение по умолчанию для аннотированной переменной

У меня есть аннотация следующего вида:

@Arg
internal var stringArg1: String? = null
@Arg
internal var stringArg2: String = "default value"

И я перебираю все переменные моих аннотированных классов, например:

for (e in annotatedElement.enclosedElements) {
    if (e.getAnnotation(Arg::class.java) != null) {
        val defaultValue = ??? 
    }
}

Вопрос:

Можно ли получить значение по умолчанию для аннотированной переменной? В моем примере я хочу получить null и "default value" для двух моих переменных.


person prom85    schedule 14.08.2019    source источник


Ответы (1)


Нет, это невозможно.

Значения по умолчанию должны быть сохранены в метаданных Kotlin, чтобы вы могли получить к ним доступ в своем процессоре аннотаций (и они там не хранятся).

Вы можете увидеть некоторые подробности об этом в репозиторий Kotlin:

документы

person Bartek Lipinski    schedule 10.12.2019