ben varsaydımHata: == geçersiz kılma
1 class Foo {
2 int foo;
3 Foo(this.foo);
4 bool operator ==(Foo a) => foo == a.foo;
5 int get hashCode => foo * 17;
6 }
7 class Bar extends Foo {
8 int bar;
8 Bar(int foo, this.bar) : super(foo);
10 bool operator ==(Bar a) => (bar == a.bar) && (foo == a.foo);
11 int get hashCode => bar * (foo * 17);
12 }
Bar alt tipi olduğunu Foo. Bu kodla ilgili sorun nedir?
Hatayla ilgili olarak, işleç == 'yöntemi herhangi bir' Nesne'yi kabul etmelidir. Yukarıdaki koda sahipseniz ve aynı 'HashSet'de' Bar' ve 'Foo' varsa, o zaman bar == foo'yu yapmaya çalıştığında hata yaparsınız, çünkü' Bar.operator == 'doesn ' Bir foo kabul et. – lrn