让我们具有以下功能set
:
abstract class Animal{}
class Cat extends Animal{}
class Dog extends Animal{}
void set<T extends Animal>(final T tcat, final T tdog)
这很好用,但有时人们可能希望限制到同一子类型,例如
void set<T extends Animal>(final T tcatA, final T tcatB)
因此编译器/运行时将不接受:
set(new Cat(), new Dog());
但是接受:
set(new Cat(), new Cat());
和
set(new Dog(), new Dog());
这可能吗?
答案 0 :(得分:0)
丹尼(Danny)添加了一些说明。
找到了一个受Java启发的解决方案,在两个通用参数之间添加了一个约束。到目前为止似乎工作正常。
void set<T extends Animal, S extends T>(final T t, final S s)