在Dart中是否可以将一个类类型作为变量传递?
我正在尝试做如下操作:
class Dodo
{
void hello() {
print("hello dodo");
}
}
void main() {
var a = Dodo;
var b = new a();
b.hello();
}
在Python中类似的代码可以正常工作。在Dart中,我会在new a()
处报错,提示a
不是一个类型。
是否可以使用类对象作为变量? 如果不能,有什么推荐的解决方法吗?
在Dart中是否可以将一个类类型作为变量传递?
我正在尝试做如下操作:
class Dodo
{
void hello() {
print("hello dodo");
}
}
void main() {
var a = Dodo;
var b = new a();
b.hello();
}
在Python中类似的代码可以正常工作。在Dart中,我会在new a()
处报错,提示a
不是一个类型。
是否可以使用类对象作为变量? 如果不能,有什么推荐的解决方法吗?
通过传递一个闭包而不是类的方式,还有另一种方法可以实现。这样,您就可以避免使用镜像。例如:
a = () => new Dodo();
...
var dodo = a();
import 'dart:mirrors';
class Dodo {
void hello() {
print("hello dodo");
}
}
void main() {
var dodo = reflectClass(Dodo);
var b = dodo.newInstance(new Symbol(''), []).reflectee;
b.hello();
}
new Symbol('')
表达式。你可以做的是:
const dynamic a = Dodo; // or dynamic a = Dodo;
var b = new a();
b.hello();
这对我来说很好用;享受吧!
a = (String myString) => new Dodo(myString); var dodo = a("hello");
- Ian Spryn