Kotlinには、データクラスのがあります。データクラスはequals()
またはhashCode()
を上書きしません。私はセット内に重複したオブジェクトを含むバグに遭遇しており、foo.containsAll(foo)
を呼び出すと、そのセットに対してfalse
が返されることに気付きました。セット内の重複アイテム
私はセット内の各項目に行きましたが、false
はfoo.contains(foo.toList()[i])
です。それらの場合、foo.toList()[i] == foo.toList()[i]
を呼び出してtrue
を返します。したがって、平等チェックが機能します。
ここでは何が起こっていますか?
これを再現するために苦労している:http://ideone.com/n8ydzW。あなたは[最小限のテストケース](http://stackoverflow.com/help/mcve)を構築できますか? –
私は1つを思いつくために唖然としています。しかし、私は回避策を見つけました。 'foo.all {a - > foo.any {b - > a == b}}'は 'containsAll()'の代用として働いています。 –