Как создать функцию расширения в 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 Class. Следующие компиляции для меня, чтобы расширить классы 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 – это класс, конечно.