我应该如何在Haxe中将一个字符串映射到一个类,并实例化它?
class Foo{}
class Bar extends Foo{}
class Buzz extends Foo{}
// (...)
var classMap:Map<String, Class<Foo>> = [
"abc" => Bar,
"def" => Buzz
];
var myClass:Class<Foo> = classMap["abc"];
var myObj:Foo = new myClass(/* params */);
我以为这个会起作用,但它拋出了
myClass
后面的unexpected (
。有什么问题吗?
Map
的方法就失去了它的意义。即使使用Type.createInstance()
,你仍然需要检查字符串键来决定要传递哪些参数。 - Gama11