gpt4 book ai didi

generics - Dart:有限制地扩展了通用类

转载 作者:行者123 更新时间:2023-12-04 17:32:46 26 4
gpt4 key购买 nike

这是声明在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);
}

上面的代码有效,但是我不确定是否使用了正确的语法。

最佳答案

尽管您的代码是正确的,但我认为您在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);
}

关于generics - Dart:有限制地扩展了通用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37821667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com