注释

  Annotation       ::=  ‘@’ SimpleType {ArgumentExprs}
  ConstrAnnotation ::=  ‘@’ SimpleType ArgumentExprs

定义

注释将元信息与定义相关联。一个简单的注释形式为 @´c´@´c(a_1, ..., a_n)´。其中,´c´ 是类 ´C´ 的构造函数,该类必须符合 scala.Annotation 类。

注释可以应用于定义、类型或表达式。定义的注释出现在该定义之前。类型的注释出现在该类型之后。表达式的注释出现在该表达式之后,用冒号隔开。多个注释子句可以应用于一个实体。这些注释的给出顺序无关紧要。

示例

@deprecated("Use D", "1.0") class C { ... } // Class annotation
@transient @volatile var m: Int             // Variable annotation
String @local                               // Type annotation
(e: @unchecked) match { ... }               // Expression annotation

预定义注释

预定义注释位于 scala.annotation 包中,也位于 scala 包中。

Scala 编译器注释

当应用于没有易变类型的值定义时,注解没有效果。

弃用注解

Java 平台注解

注解子句的含义取决于实现。在 Java 平台上,以下注解具有标准含义。

private final static SerialVersionUID = <longlit>

Java Bean 注解

用户定义的注解

其他注解可能由平台或应用程序相关的工具解释。类 scala.annotation.Annotation 是用户定义注解的基类。它有两个子特征

主机平台注解

主机平台可以定义自己的注解格式。这些注解不扩展 scala.annotation 包中的任何类,但通常可以与 Scala 注解一样使用。主机平台可能会对作为注解参数有效的表达式施加额外的限制。