@field注释的用法

时间:2016-05-03 21:01:28

标签: scala annotations

我正在浏览spray-swagger库并遇到了这段代码:

@ApiModel(description = "A pet object")
case class Pet(
  @(ApiModelProperty @field)(value = "unique identifier for the pet")
  val id: Int,

  @(ApiModelProperty @field)(value = "The name of the pet")
  val name: String)

我去了我可信赖的Scala 3ed编程副本,找出在另一个注释中使用@field注释的语法(re:@(ApiModelProperty @field)),但我做得很简短。我破解了@ApiModelProperty代码,发现:

/**
 * Adds and manipulates data of a model property.
 */
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ApiModelProperty {

问题:我们是否提供了编译器线索,了解@ApiModelProperty注释应用于哪个上下文以满足其@Target注释?

1 个答案:

答案 0 :(得分:1)

您可以在documentation for scala.annotation.target包中找到答案。

@field元注释用于告诉编译器名为id的实际字段应该被视为注释的目标,而不是自动生成的accesssor / mutator方法:
id():Intid_=(i: Int):()