私は次のジェネリッククラスを持っています:
class Or<A,B>
{
Or (A a) {}
Or (B b) {}
}
コンパイルしようとすると、次のエラーが発生するのはなぜですか。
Or(A) は Or で既に定義されています または (B b) ^
2 つのコンストラクターは、ジェネリック型の引数が異なりますが、同じシグネチャを共有しているように思えます。なんで?そして、この問題を回避するにはどうすればよいですか?
アップデート
私は今問題を理解しました。コンパイラには、2 つの型を区別する方法が必要です。このような制約を追加することは、私のユース ケースでは問題ありません。だから私は別の質問を追加したいと思います:
2 つのタイプ A と B がまったく異なるものであると指定するにはどうすればよいでしょうか?