如何让spring @ManagedOperationParameter与scala一起工作

时间:2014-01-22 19:33:21

标签: java spring scala

在我的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语法的东西我得不到什么是它?

1 个答案:

答案 0 :(得分:1)

内部注释值必须使用不同的语法构造。这应该工作(为了清晰起见,添加了空白,不相关);如果没有,请尝试用位置替换命名参数。

@ManagedOperationParameters(
  Array(
    new ManagedOperationParameter(name="myname", description="mydesc")
  ))