Ceq*_*iel 5 generics extends restrictions dart
这是声明在dart中扩展另一个“泛型类”的“泛型类”的正确方法吗?请注意,泛型参数具有类型限制。
// available types
class BaseType {}
class DerivedType extends BaseType {}
class BaseClass<Type extends BaseType> {
final Type prop;
BaseClass(this.prop) {
// can be either BaseType or DerivedType
print(prop);
}
}
class DerivedClass<Type extends BaseType> extends BaseClass<BaseType> {
DerivedClass(BaseType prop) : super(prop);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码有效,但是我不确定是否使用正确的语法。
尽管您的代码是正确的,但我认为您在以下泛型中犯了语义错误DerivedClass:
// available types
class BaseType {}
class DerivedType extends BaseType {}
class BaseClass<T extends BaseType> {
final T prop;
BaseClass(this.prop) {
// can be either BaseType or DerivedType
print(prop);
}
}
class DerivedClass<T extends BaseType> extends BaseClass<T /*not BaseType*/> {
DerivedClass(T /*not BaseType*/ prop) : super(prop);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2756 次 |
| 最近记录: |