为什么我必须使用Kotlin而不是Java?
问题:为什么我必须在Kotlin中强制转换类型,而不是在Java中 我有一个java方法:为什么我必须使用Kotlin而不是Java?,java,kotlin,Java,Kotlin,问题:为什么我必须在Kotlin中强制转换类型,而不是在Java中 我有一个java方法: processAction(Observable<Action> actions) 我称之为测试(Kotlin): 当(myMock.processAction)(any(Observable::class.java)在java中作为Observable时,您的表达式具有以下类型: 可观察。类->类 any(Observable.class)->Observable 同样,在科特林:
processAction(Observable<Action> actions)
我称之为测试(Kotlin):
当(myMock.processAction)(any(Observable::class.java)在java中作为Observable时,您的表达式具有以下类型:
可观察。类
->类
any(Observable.class)
->Observable
同样,在科特林:
Observable::class.java
->class
any(Observable::class.java)
->Observable
在Java中,Observable
是一种原始类型;当您隐式转换为Observable时,您应该期望编译器/IDE突出显示一条警告,因为它们大大减少了这一点的详细性(在这种情况下,它只是any()
).你能解释一下这些方法在参数、注释和返回类型中的作用吗?这很可能与参数的可空性有关。我粘贴了一个到repo的链接。我不想回答你的问题,也不想把问题本身弄得一团糟。很有趣。每天学习一些新的东西。关于Mockito Kotlin,它看起来很有趣因为它已经有一段时间没有更新了…我犹豫着要使用它。
when(myMock.processAction(any(Observable.class))).thenAnswer(...)
when(myMock.processAction(any(Observable::class.java) as Observable<Action>).thenAnswer(...)