2010-02-19 51 views
6

我有一個對象,我需要它的類傳遞給一個註解,需要java.lang.Class中,如:如何獲取斯卡拉對象的java.lang.Class中的一個註解參數

public @interface PrepareForTest { 
    Class<?>[] value() 
} 

object MyObject 

@PrepareForTest(Array(?????)) 
class MySpec ... 

我試過了:

@PrepareForTest(Array(classOf[MyObject])) 
// error: not found: type MyObject 

@PrepareForTest(Array(MyObject)) 
// error: type mismatch 
// found: MyObject.type (with underlying type object MyObject 
// required: java.lang.Class[_] 

@PrepareForTest(Array(classOf[MyObject.type])) 
// error: class type required by MyObject.type found 

不知道還有什麼可以嘗試的。

回答

1

看一看的throws註釋:

@throws(classOf[IOException]) 

註釋本身被聲明爲:

class throws(clazz: Class[_]) extends StaticAnnotation 

做同樣爲object似乎並不可能,因爲Scala似乎阻止一個物體被視爲擁有自己的類別