Я знаю о двух:
-
@deprecated("use blabla instead")
используется для добавления объяснения к выходу предупреждения компилятором, когда аннотированное определение используется в клиентском коде. -
@implicitNotFound(msg = "more meaningful explanation")
используется для вывода дополнительного сообщения об ошибке всякий раз, когда неявный тип аннотированного определения не может быть найден. Глядя наCanBuildFrom
, msg может содержать заполнители типа${A}
, еслиA
- это имя параметра типа аннотированного типа, которое заполняется компилятором с фактическим ожидаемым типом, например:@implicitNotFound(msg = "Cannot construct a collection of type ${To} with elements of type ${Elem} based on a collection of type ${To}.") trait CanBuildFrom[-From, -Elem, +To] { ... }
Есть ли еще такие аннотации?