间谍高阶函数的类型推断

时间:2020-02-19 03:23:17

标签: kotlin mockito mockito-kotlin

我正在使用Mockito-kotlin在Android上开发单元测试。

我试图监视一个函数,所以我做了下面的代码来做到这一点,并且效果很好。

在这种情况下,AndroidStudio指出不需要进行强制类型转换,但是当删除强制类型转换时,类型将更改为Foo而不是Foo-> Unit:

private val onClick /*:(Foo) -> Unit*/ = spy({ foo: Foo -> } as (Foo) -> Unit)

private val onClick /*:(Foo) -> Unit*/ = { foo: Foo -> }

private val onClick /*:Foo*/ = spy({ foo: Foo -> })

编译器如何得出类型为Foo的结论,以及如何编写代码以避免不必要的强制转换警告?

0 个答案:

没有答案