Согласно документации scala существует четыре вида аннотаций:
- Аннотации классов:
@ClassAnnotation case class Foo(...)
- Переменные / аннотации значений:
@ValAnnotation val field: String
- Тип аннотации:
field: String @TypeAnnotation
- Аннотации выражений
Используя shapeless.Annotation
и shapeless.Annotations
, легко получить аннотации класса и переменной (1 и 2) из тематического класса.Как получить аннотации типа его полей (3)?
Пример:
@ClassAnnotation
case class Foo(
@ValAnnotation field: String @TypeAnnotation
)