Я знаю о двух:
@deprecated (" используйте вместо этого blabla ")
используется для добавления объяснения к предупреждению, выводимому компилятором, когда аннотированное определение используется в клиентском коде. @implicitNotFound (msg = "более содержательное объяснение")
используется для вывода дополнительного сообщения об ошибке, когда неявный тип аннотированного определения не может быть найден. Глядя на CanBuildFrom
, msg может содержать заполнители типа $ {A}
, если A
- имя параметра типа аннотированного типа, который заполняется компилятором с фактический ожидаемый тип, например:
@implicitNotFound (msg = "Невозможно создать коллекцию типа $ {To} с элементами типа $ {Elem} на основе коллекции типа $ {To}.")
trait CanBuildFrom [-From, -Elem, + To] {...}
Существуют ли другие подобные аннотации?