如何在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) 

但它给我编译错误。

One Solution collect form web for “如何在Kotlin中创建一个在类上运行的扩展函数?”

它看起来像你稍微混合了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是一个类。

  • 在kotlinunit testing中获得lambda捕获器的调用计数
  • Kotlin + Mockito2:演示者测试的ClassNotFoundException
  • 使用Mockito,我如何用val接口字段声明监听Kotlin类?
  • Mockito通缉,但没有调用
  • Android Kotlin:使用Mockito / PowerMock嘲笑免费的功能
  • 没有开放课程,可以和Kotlin一起使用Mockito吗?
  • 如何模拟Kotlin单身物件?
  • Kotlin中@BeforeAll的正确解决方法是什么?
  • 为什么Mockito不能在Kotlin中使用数字类型来模拟一个通用的参数类型?
  • Kotlin + Mockito:得到一个null
  • MissingMethodInvocationException在Kotlin中测试已打开的类
  • Kotlin language will be the best programming language for Android.