如何使用注释添加覆盖 case class 字段?
How to override case class field with annotation addition?
问题
如何使用注释添加覆盖 case class
?类似于以下内容:
case class Foo (
bar: Int
)
new Foo {
@Annotation
override val bar: Int
}
在上面的代码中,我尝试创建一个匿名案例 class,它使用注释 @Annotation
覆盖 class Foo
的字段 bar
].编译returns"Illegal start of declaration @Annotation
".
上下文
我正在尝试创建一个 swagger 文档服务,但不想在整个模型 classes 中乱扔 swagger 注释。我想创建匿名案例 classes 仅用于 swagger API 路径注释;这些匿名案例 classes 将覆盖带有 swagger 注释的原始模型 classes。
它的用法类似于:
new ApiImplicitParam(
name = "body",
dataTypeClass = classOf[DataType {
@ApiModelProperty
override val someEnum: SomeEnum
}],
required = true,
paramType = "body"
)
您的代码无法编译,因为您
- 不为构造函数提供参数
和
- 不实施
bar
。
以下代码在2.13编译
new Foo(???) {
@Annotation
override val bar: Int = ???
}
问题
如何使用注释添加覆盖 case class
?类似于以下内容:
case class Foo (
bar: Int
)
new Foo {
@Annotation
override val bar: Int
}
在上面的代码中,我尝试创建一个匿名案例 class,它使用注释 @Annotation
覆盖 class Foo
的字段 bar
].编译returns"Illegal start of declaration @Annotation
".
上下文
我正在尝试创建一个 swagger 文档服务,但不想在整个模型 classes 中乱扔 swagger 注释。我想创建匿名案例 classes 仅用于 swagger API 路径注释;这些匿名案例 classes 将覆盖带有 swagger 注释的原始模型 classes。
它的用法类似于:
new ApiImplicitParam(
name = "body",
dataTypeClass = classOf[DataType {
@ApiModelProperty
override val someEnum: SomeEnum
}],
required = true,
paramType = "body"
)
您的代码无法编译,因为您
- 不为构造函数提供参数
和
- 不实施
bar
。
以下代码在2.13编译
new Foo(???) {
@Annotation
override val bar: Int = ???
}