Как переопределить поле класса case с добавлением аннотации? - PullRequest
0 голосов
/ 20 сентября 2019

Вопрос

Как я могу переопределить case class с добавлением аннотации?Примерно так:

case class Foo (
  bar: Int
)

new Foo {
  @Annotation
  override val bar: Int
}

В приведенном выше коде я пытаюсь создать анонимный класс case, который переопределяет поле bar класса Foo с аннотацией @Annotation.Компиляция возвращает "Неверное начало объявления @Annotation" .

Контекст

Я пытаюсь создать службу документации чванства, но не хочу засорять всю модельклассы с чванливыми аннотациями.Я думал о создании анонимных классов дел для использования только в аннотациях пути API-интерфейса;эти анонимные классы прецедентов переопределяют исходные классы модели с пометками-чванствами.

Он используется как-то вроде:

new ApiImplicitParam(
  name = "body",
  dataTypeClass = classOf[DataType {
    @ApiModelProperty
    override val someEnum: SomeEnum
  }],
  required = true,
  paramType = "body"
)

1 Ответ

3 голосов
/ 20 сентября 2019

Ваш код не компилируется, потому что вы

  • не предоставляете аргумент для конструктора

и

  • не реализуетеbar.

Следующий код компилируется в 2.13

new Foo(???) {
  @Annotation
  override val bar: Int = ???
}
...