我想知道是否有可能动态扩展一个类,我是Dart的新手,我正在寻找类似的东西(请注意$ {whatever}只是为了说明目的) :动态扩展一个类
class MyClass extends ${otherClass}
,让我们说我想从另一个函数初始化它:
var myDinamic = new myClass<otherClass>
希望这是有道理的,并在此先感谢!
我想知道是否有可能动态扩展一个类,我是Dart的新手,我正在寻找类似的东西(请注意$ {whatever}只是为了说明目的) :动态扩展一个类
class MyClass extends ${otherClass}
,让我们说我想从另一个函数初始化它:
var myDinamic = new myClass<otherClass>
希望这是有道理的,并在此先感谢!
一个类扩展另一个类只能静态定义,而不能在运行时定义。最接近的可能是使用泛型类型参数来配置类型。 https://www.dartlang.org/docs/dart-up-and-running/ch02.html#generics
- -
也
见http://blog.sethladd.com/2012/01/generics-in-dart-or-why-javascript.html
abstract class SomeInterface {}
class A implements SomeInterface {}
class B implements SomeInterface {}
class C<T extends SomeInterface> {
T doSomething(T arg) { return arg; }
}
main() {
new C<A>();
new C<B>();
// does NOT work
// var t = A;
// new C<t>();
}
,但类型参数还需要静态定义。您不能使用变量作为泛型类型参数。
总之:编号 Dart要求所有类都有一个超类。你所要求的是有一个类改变其超类每个实例。这不是一个单独的类 - 不可能说出这个类有哪些成员,因为这对于超类的选择实际上是一个不同的类。