我知道两种方式:
@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] { ... }
是否还有其他类似的注解?