我想知道今天是否有任何方法可以确保在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 {
}