为什么==和equals会产生不同的结果?
问题描述:
执行以下代码:为什么==和equals会产生不同的结果?
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
为什么会有==之间的差异,在这种情况下等于? IntelliJ本身建议我用==替换equals调用。另外,我可以使用==在过去工作中发布此代码。
使用科特林版本1.1.0-rc91
可能是代码生成的具体类型参数的类标记的相关问题:https://youtrack.jetbrains.com/issue/KT-17879 – hotkey
请检查是否有更新版本的Kotlin有此行为。 – hotkey
谢谢 - 是的,它看起来像是一个已知的错误:https://youtrack.jetbrains.com/issue/KT-17748发布作为答案,我会接受它。 – hudsonb