实际上Scala注释是什么?

mat*_*iit 2 annotations scala

我不懂Java,我开始学习Scala.什么是注释,它们的用途是什么?

Bri*_*new 7

注释是附加到类/方法/字段的元数据,框架可以使用它来确定围绕这些类/方法/字段的所需功能.

常见用途包括:

  1. 标记方法作为单元测试方法和相关的设置/拆除(例如JUnit和TestNG)
  2. 标记持久性的类和字段(例如Hibernate)
  3. 标记要作为JMX bean公开的类和字段

注释是一种Java功能,因此可以在Scala和Java中使用.


mik*_*kej 5

通常,注释使得可以将信息与定义相关联,例如类,方法或变量的定义.注释可以由编译器使用,也可以由程序的其他部分访问,例如在Java中:

@SuppressWarnings("deprecation")
void useADeprecatedMethod() {
    someObj.someDeprecatedMethod();
}
Run Code Online (Sandbox Code Playgroud)

这里,@SuppressWarnings注释告诉编译器不要发出有关useADeprecatedMethod's使用的警告someDeprecatedMethod.

Java世界中的其他用途包括向类添加有关如何映射到关系数据库以供OR映射器(如Hibernate)使用的信息.

在Scala中,Java中的关键字或标记接口的许多内容在Scala中实现为注释.例如@throws,@serializable.

下面是一个示例,显示Scala和Java与注释的帮助一起工作.想象一下,我们将Person在Scala中定义一个类.当我们Person在Java中使用时,Java程序员将期望我们拥有setNamegetNameJava一样的bean约定.这可以使用@BeanProperty注释来实现:

Scala中的Person类:

class Person {
  @BeanProperty
  var name = "Joe Bloggs"
}
Run Code Online (Sandbox Code Playgroud)

在Java中:

public void printPerson(Person p) {
    // Scala added the getName method for us
    System.out.println(p.getName());
}
Run Code Online (Sandbox Code Playgroud)