如何在Kotlin中创建一个在类上运行的扩展函数?

试想一下,我有这样的代码行:

import org.mockito.Mockito val mock = Mockito.mock(Sim2ParametersProvider::class.java) 

我想能够这样写:

 val mock = Sim2ParametersProvider::class.mock() 

我如何做到这一点?

我试过了

 fun <T : kotlin.Any> kotlin.reflect.KClass<T>.mock() = Mockito.mock(this) 

但它给我编译错误。

它看起来像你稍微混合了KClass和Java类。 下面为我​​编译扩展java类:

 fun <T> Class<T>.mock() = Mockito.mock(this) val mock1 = FooClass::class.java.mock() 

另外下面为我编译,扩展Kotlin KClass:

 fun <T: Any> KClass<T>.mock() = Mockito.mock(this.java) val mock2 = FooClass::class.mock() 

当然,假设FooClass是一个类。