在我的 scala 代码中,这工作正常:
import org.springframework.jmx.export.annotation.{ManagedOperationParameters, ManagedResource, ManagedOperation, ManagedOperationParameter}
@Override @ManagedOperation(description = "somedesk")
def getStatsAsStr: String = "blabla"
但是一旦我添加@ManagedOperationParameters
,我就会得到illegal start of simple expression for @ManagedOperationParameter(
,尽管我确实导入了它。
所以在 java 中编译得很好:
@Override @ManagedOperation(description = "some description")
@ManagedOperationParameters({@ManagedOperationParameter(name = "myname", description = "myname")
})
在 scala 中无法编译:
import org.springframework.jmx.export.annotation.{ManagedOperationParameters, ManagedResource, ManagedOperation, ManagedOperationParameter}
@Override @ManagedOperation(description = "some description")
@ManagedOperationParameters(Array(@ManagedOperationParameter(name = "myname", description = "mydesc")) // PRODUCES 'illegal start of simple expression for @ManagedOperationParameter('
def getStatsAsStr(myname: String): String = "blabla"
有办法让它发挥作用吗?如果我在同一个项目中使用 java
语法将其创建为 .java
,一切都很好(这意味着我的依赖关系很好),我认为它与 scala
相关code> 语法我不明白它是什么?
最佳答案
内部注释值必须使用不同的语法构造。这应该可行(为了清晰起见添加了空格,不相关);如果没有,请尝试用位置参数替换命名参数。
@ManagedOperationParameters(
Array(
new ManagedOperationParameter(name="myname", description="mydesc")
))
关于java - 如何使 spring @ManagedOperationParameter 与 scala 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21292252/