我今天想知道是否有任何方法可以确保在dart构造时初始化通用实例变量。采用以下基本示例:
class MovingObject<T> {
T _value;
MovingObject() {
// ???: how to init _value here?
}
}
在C ++中,你可以通过专门化已知类型的构造函数来做到这一点,例如。我可以将float _value设置为0或将Vector3值设置为[0,0,0]。飞镖有可能吗?
答案 0 :(得分:2)
我想到的一种方式是
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 {
}