2017-06-19 11 views
3

==と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呼び出しを==に置き換えることを提案しています。また、私は==を使用してこのコードを誓っていたかもしれませんでしたが、過去に働いていました。 kotlinバージョン1.1.0-rc91

+0

おそらく、改訂型パラメータのクラストークンのコード生成に関する関連する問題:https://youtrack.jetbrains.com/issue/KT-17879 – hotkey

+0

新しいバージョンのKotlinでこの問題が発生しているかどうかを確認してください。 – hotkey

+0

ありがとうございます - はい、それは既知のバグのようです:https://youtrack.jetbrains.com/issue/KT-17748回答として投稿し、私はそれを受け入れます。 – hudsonb

答えて

3

この動作を使用して

が具体化型パラメータのクラストークンのコード生成の既知の問題です、それはここに追跡されます:KT-17748

関連する問題