在Scala中作为注释参数的注释数组

fom*_*mil 10 spring annotations scala

将数组作为参数传递给注释有很多问题,这不是那些的愚蠢.

我想使用一个Java-land注释,它将一个注释数组作为参数,例如

@ManagedOperation
@ManagedOperationParameters({
  @ManagedOperationParameter(name="start"),
  @ManagedOperationParameter(name="end")
})
def stuff(start: String, end: String): Unit = ???
Run Code Online (Sandbox Code Playgroud)

但这不是Scala中的有效语法,也不是

@ManagedOperation
@ManagedOperationParameters(Array(
  @ManagedOperationParameter(name="start"),
  @ManagedOperationParameter(name="end")
))
def stuff(start: String, end: String): Unit = ???
Run Code Online (Sandbox Code Playgroud)

那么,如果可能的话,这样做的正确方法是什么?

顺便说一句,我甚至检查了所有github以查看是否有任何Scala开发人员正在使用此(Spring JMX)注释.

igr*_*eld 5

在scala中,内部注释应该用作常规类型:

@JsonTypeInfo(
  use = JsonTypeInfo.Id.NAME,
  include = JsonTypeInfo.As.PROPERTY,
  property = "moduleType",
  defaultImpl = classOf[PuppetModule]
)
@JsonSubTypes(Array(
  new Type(value = classOf[PuppetModule], name = "puppet"),
  new Type(value = classOf[PluginModule], name = "plugin")
))
trait Module {
  val moduleType: String = if (this.isInstanceOf[PuppetModule]) "puppet" else "plugin"
  val nodes: List[String] = List[String]()
}
Run Code Online (Sandbox Code Playgroud)