Generics Dart:如何将泛型方法绑定到嵌套的泛型参数?
有没有办法创建绑定到泛型参数的泛型方法?下面是我的例子:Generics Dart:如何将泛型方法绑定到嵌套的泛型参数?,generics,dart,Generics,Dart,有没有办法创建绑定到泛型参数的泛型方法?下面是我的例子: class Taste {} class Vanilla extends Taste {} class Chocolate extends Taste {} class冰淇淋{ int-tasteLevel=0; //只有这种味道可以用 空洞增强味(T味){ tasteLevel++; } } 巧克力冰淇淋类冰淇淋{} VanillaIceCream类扩展冰淇淋{} 下面是实现泛型方法enhanceTastes()的类。 是否可以
class Taste {}
class Vanilla extends Taste {}
class Chocolate extends Taste {}
class冰淇淋{
int-tasteLevel=0;
//只有这种味道可以用
空洞增强味(T味){
tasteLevel++;
}
}
巧克力冰淇淋类冰淇淋{}
VanillaIceCream类扩展冰淇淋{}
下面是实现泛型方法enhanceTastes()的类。
是否可以将方法参数taste绑定到_icecreamlisttaste?
也许是定义“T=Iclass冰淇淋盒{
List _iceCreamList=List();
//通用方法
空洞强化口味(E口味){
用于(冰淇淋列表中的T冰淇淋){
冰淇淋。增强味道(味道);
}
}
}
这是测试box.enhanceTages(香草())不应被允许使用
class TestBox {
void test() {
IceCreamBox<ChocolateIceCream> box = IceCreamBox<ChocolateIceCream>();
box.enhanceTastes(Chocolate()); //OK
box.enhanceTastes(Vanilla()); //I WANT THE COMPILER TO COMPLAIN! BECAUSE THIS IS A CHOCOLATE ICE CREAM BOX!
}
}
类测试盒{
无效测试(){
冰淇淋盒=冰淇淋盒();
box.enhanceTages(巧克力());//好的
box.enhanceTastes(Vanilla());//我想让编译器抱怨!因为这是一个巧克力冰淇淋盒!
}
}
class IceCreamBox<T extends IceCream> {
List<T> _iceCreamList = List<T>();
//GENERIC METHOD
void enhanceTastes<E extends Taste /*of _iceCreamList*/>(E taste) {
for (T iceCream in _iceCreamList) {
iceCream.enhanceTaste(taste);
}
}
}
class TestBox {
void test() {
IceCreamBox<ChocolateIceCream> box = IceCreamBox<ChocolateIceCream>();
box.enhanceTastes(Chocolate()); //OK
box.enhanceTastes(Vanilla()); //I WANT THE COMPILER TO COMPLAIN! BECAUSE THIS IS A CHOCOLATE ICE CREAM BOX!
}
}