You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart中继承带泛型参数的类时dynamic能否替换为自定义泛型

报错原因

你在QuestionPageBaseState的泛型约束中直接使用了U、V两个标识符,但没有将它们提前声明为类的泛型参数,Dart无法识别未定义的类型标识符,因此抛出了对应错误,该需求是完全可以实现的,只需要补充泛型参数声明即可。

修正方案

将U、V也添加到QuestionPageBaseState的泛型参数列表中即可,示例代码如下:

// 无类型约束的写法
abstract class QuestionPageBaseState<T extends Question<U, V>, U, V> {
  // 类的具体实现逻辑
}

如果U、V有明确的类型范围,也可以给这两个泛型参数添加上限约束:

// 带类型约束的示例,可根据实际业务调整约束规则
abstract class QuestionPageBaseState<T extends Question<U, V>, U extends num, V extends String> {
  // 类的具体实现逻辑
}

可选简化方案

如果你不需要在QuestionPageBaseState内部单独使用U、V类型,也可以保留原来的dynamic写法,不会影响Question子类的功能使用。

内容的提问来源于stack exchange,提问作者Quentin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:57:04