我有两个类,一个父类和一个子类,父类有一个返回子实例的方法。
使用泛型类型,我可以这样做:
import "dart:mirrors";
class Parent<T extends Parent> {
T anotherMe() {
var classMirror = reflectClass(this.runtimeType);
var instance = classMirror.newInstance(new Symbol(""), []).reflectee;
return instance;
}
}
class Child extends Parent<Child> {
}
为了测试它,我写了这段代码:
main() {
Child child = new Child();
var another = child.anotherMe();
print(another);
}
打印哪些:
Instance of 'Child'
但如果我不希望Parent
使用泛型类型怎么办? E.g:
class Parent {
Type childType;
Parent() {
childType = this.runtimeType;
}
childType anotherMe() {
var classMirror = reflectClass(this.runtimeType);
var instance = classMirror.newInstance(new Symbol(""), []).reflectee;
return instance;
}
}
代码无法编译(当然),但你可以得到我的想法。我问这个是因为我知道scala提供了类似的东西:
def anotherMe: this.type = {}
我发现它有时很有用,并且想知道我是否可以在Dart中做同样的事情