2014-01-22 36 views
0

在我的Scala代碼春天@ManagedOperationParameter工作能正常工作:如何使斯卡拉

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" 

有沒有辦法爲它工作?如果我創建它作爲.javajava語法在同一個項目中一切都很好(這意味着我detaiedncies很好)我認爲它的東西scala語法我不明白它是什麼?

回答

1

內部註釋值必須用不同的語法構造。這應該起作用(爲清楚起見添加了空白,不相關);如果不是,請嘗試用位置替換命名的參數。

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