在Haxe中,通过字符串名称创建一个类的实例

8

假设我获得了一个我创建的类的名称作为一个String。如何使用该字符串中包含的名称实例化该类?我知道它将派生自某个特定的父类,但实际的类会有所不同。

1个回答

17
var instance : MyClass = Type.createInstance(Type.resolveClass("path.to.MyClass"), []);

注意以下几点:

  • resolveClass() 方法需要传入包括路径在内的完整类名。
  • createInstance() 方法的第二个参数是一个数组,包含要传递给构造函数的值。这些值必须是精确数量的并且即使是可选参数也必须传递(在这种情况下可以使用 null 值)。

但是当我从字符串中获取类的名称时,如何知道实例dataType的“MyClass”名称呢?例如:https://gist.github.com/danbruegge/d51a9d233b4944327be6 我使用一个函数创建了这个类。但是我怎么知道变量实例的DataType呢? - danbruegge
@danbruegge,如果您想在运行时输入某些内容,那是不可能的。通常情况下,您需要共享一种通用类型,例如接口、基类或typedef,以便您可以依赖它。 - Franco Ponticelli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接