泛型-限制为同一子类型

时间:2019-03-10 16:18:30

标签: generics dart

让我们具有以下功能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());

这可能吗?

1 个答案:

答案 0 :(得分:0)

丹尼(Danny)添加了一些说明。

找到了一个受Java启发的解决方案,在两个通用参数之间添加了一个约束。到目前为止似乎工作正常。

void set<T extends Animal, S extends T>(final T t, final S s)

相关问题