本章主要说的事注解,其实scala的注解和java的注解大同小异,不再赘述。
16.1 注解
class App {
@Test(timeout = 100) def testSomeFeature() {}
@Entity class Credentials {
@Id @BeanProperty var username: String = _
@BeanProperty var password: String = _
}
}
Scala可以使用Java注解。上述示例中的注解除了@BeanProperty是scala注解外,其他的都来自JUnit和JPA,而这两个Java框架并不知道用的是Scala语言。在Scala中,注释可以加在类、方法、字段、局部变量和参数等地方。
Scala特有的注解通常是由Scala编译器或编译器插件处理。
Scala注解和Java注解区别: Java注解并不影响编译器如何将源码翻译成字节码;它们仅仅是往字节码中添加数据,以便外部工具可以利用到它们。而在Scala中,注解可以影响编译过程。例如@BeanPropetry注解将触发getter和setter方法(如果为var的话)的生成。