Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我必须使用Kotlin而不是Java?_Java_Kotlin - Fatal编程技术网

为什么我必须使用Kotlin而不是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 同样,在科特林:

问题:为什么我必须在Kotlin中强制转换类型,而不是在Java中

我有一个java方法:

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(...)