我有以下通用类:
class Or<A,B>
{
Or (A a) {}
Or (B b) {}
}
为什么我尝试编译时会出现以下错误:
Or(A) 已在 Or 中定义
或 (B b)
^
在我看来,这两个构造函数共享相同的签名,尽管它们具有不同的泛型类型参数。为什么?以及如何解决这个问题?
更新
我现在明白了这个问题。编译器需要一种方法来区分这两种类型。对于我的用例来说,添加这样的约束就可以了。所以我想补充另一个问题:
如何指定 A 和 B 两种类型可能完全不同?