是否可以在构造函数中初始化泛型实例变量



我想知道今天是否有任何方法可以确保在dart中构造通用实例变量时初始化。以下面的基本示例为例:

class MovingObject<T> {
  T _value;
  MovingObject() {
    // ???: how to init _value here?
  }
}

在c++中,可以通过对已知类型的构造函数进行专门化来实现这一点,例如,我可以将float _value设置为0或将Vector3的值设置为[0,0,0]。这在dart中可能吗?

我想到的一个方法是

class MovingObject<T> {
  T _value;
  MovingObject() {
    // ???: how to init _value here?
    switch(T) {
      case int:
        _value = (5 as T);
        break;
      default:
        ClassMirror x = reflectType(T);
        _value = x.newInstance(new Symbol(''), []).reflectee; // '' for default constructor
        break;
    }
  }
}
class SomeType {
}

最新更新