为什么==和equals产生不同的结果?

时间:2017-06-19 15:04:43

标签: reflection kotlin

执行以下代码:

inline fun <reified R> foobar() {
    println(R::class == Double::class)
    println(R::class.equals(Double::class))
}

fun main(args: Array<String>) {
    foobar<Double>()
}

产生以下输出:

false
true

为什么在这种情况下==和equals之间存在差异? IntelliJ本身建议我用==替换equals调用。另外,我可以使用==在过去工作时发誓这段代码。

使用kotlin版本1.1.0-rc91

1 个答案:

答案 0 :(得分:3)

此行为是代码生成中的一个已知问题,用于定义类型参数的类标记,它在此处进行跟踪:KT-17748