在我的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
语法的东西我得不到什么是它?
答案 0 :(得分:1)
内部注释值必须使用不同的语法构造。这应该工作(为了清晰起见,添加了空白,不相关);如果没有,请尝试用位置替换命名参数。
@ManagedOperationParameters(
Array(
new ManagedOperationParameter(name="myname", description="mydesc")
))