如何获取注释参数的scala对象的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

不知道还有什么可以尝试.

解决方法

classOf [MyObject $]不起作用,因为没有名为MyObject $的类型.

事实上,问题确实出现过,并没有简单的解决方案.请参阅https://lampsvn.epfl.ch/trac/scala/ticket/2453#comment:5的讨论

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...