将泛型类中的 T 限制为实现某些接口的类型

use*_*636 8 dart

在飞镖考虑以下

class Question<T>{
  String body;
  T answer;
}

//an interface
class IAnswer{
  String Value()=>this.toString();  
}
Run Code Online (Sandbox Code Playgroud)

我需要将 T 限制为类型,例如实现接口 IAnswer,这是否可能无需检查 T 是否为 IAnswer 并在 Question 构造函数中抛出和异常?

Gün*_*uer 6

class Question<T extends IAnswer>{
  String body;
  T answer;
}
Run Code Online (Sandbox Code Playgroud)

  • 它基本上是来自 Java 的“有界类型参数”或来自 Scala 的“上类型界限”。哇!不知道 Dart 允许这样做。看起来几年后 Dart 会像 Scala 一样简单,我很兴奋:P (2认同)