如何利用kotlin';当函数有一个带有lambda参数的对象时,s内联的好处

如何利用kotlin';当函数有一个带有lambda参数的对象时,s内联的好处,lambda,kotlin,inline-functions,Lambda,Kotlin,Inline Functions,假设我有一个这样的数据类 private data class StubModel<T>( val invocation: ItemsFactory.() -> T?, val returnValue: T ) 私有数据类StubModel( val调用:ItemsFactory.(->T?, 返回值:T ) 我有一个这样的函数 private fun <T> stubIt(stubs: List<StubModel<

假设我有一个这样的数据类

private data class StubModel<T>(
        val invocation: ItemsFactory.() -> T?,
        val returnValue: T
)
私有数据类StubModel(
val调用:ItemsFactory.(->T?,
返回值:T
)
我有一个这样的函数

private fun <T> stubIt(stubs: List<StubModel<T>>) {
    for (stub in stubs) {
        whenever(stub.invocation()).thenReturn(stub.returnValue)
    }
}
private fun存根(存根:列表){
用于(存根中的存根){
无论何时(stub.invocation()).thenReturn(stub.returnValue)
}
}

现在,当我尝试内联
stubIt
函数时,我没有获得任何性能优势(即
StubModel
中的lambda参数没有内联,这就是我想要内联功能的原因),如何让kotlin编译器在调用站点的模型类中内联lambda参数?

这是不可能的。作为
StubModel
的一个属性,
调用
需要是一个对象实例并作为对象实例存储。这就是内联函数用来防止的。还有一个列表作为参数使得内联任何东西都不可能,因为编译器在运行时应该如何知道这些值。

这是不可能的。作为
StubModel
的一个属性,
调用
需要是一个对象实例并作为对象实例存储。这就是内联函数用来防止的。还有一个列表作为参数使得内联任何东西都不可能,因为编译器在运行时应该如何知道这些值