Я определил простую аннотацию в Скале, как этотПолучить все классы аннотированных с определенной аннотацией (ов)
case class MyAnnotation(value: String) extends StaticAnnotation
, а затем некоторые классы, которые используют эту аннотацию
@MyAnnotation("en_US")
class TestAnnotation
Теперь я хотелось бы получить во время выполнения все классы, аннотированные такими аннотациями, но документация о mirrors и annotations в scala-reflect не совсем понятна: -/
Может ли кто-нибудь пролить свет на то, как выполнить такой поиск во время выполнения?
Спасибо!
Спасибо, но я уже видел этот ответ, и это неправильно. Для простого факта, что ["... Кроме того, ** подклассификация scala.annotation.ClassfileAnnotation не делает вашу аннотацию видимой как аннотацию Java во время выполнения, для чего требуется написать класс аннотации в Java."] (Http: // docs .scala-lang.org/обзоры/отражение/аннотаций наименования-оптические прицелы). Это, в свою очередь, делает библиотеку отражений бесполезной. То же самое касается последней ссылки, поскольку она выполняется во время компиляции, а не во время выполнения, как я спросил. Вкратце: аннотации runtime разбиты (следовательно, почему они все еще экспериментальны) – Polentino
Да, но вы можете отменить аннотации java, если вам нужна такая функциональность. – tkachuko
Действительно, но поскольку я начинаю проект с нуля в Scala, я просто хотел придерживаться языка как можно больше. И, поскольку это было в течение 12 лет, это довольно удручающе отметить, как эта проблема еще не решена ... – Polentino