我想知道是否有可能動態擴展一個類,我是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要求所有類都有一個超類。你所要求的是有一個類改變其超類每個實例。這不是一個單獨的類 - 不可能說出這個類有哪些成員,因爲這對於超類的選擇實際上是一個不同的類。