【问题标题】:Create an instance of a class from a string name in Haxe从 Haxe 中的字符串名称创建类的实例
【发布时间】:2011-04-09 15:41:36
【问题描述】:

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

【问题讨论】:

    标签: instantiation haxe dynamic-typing


    【解决方案1】:
    var instance : MyClass = Type.createInstance(Type.resolveClass("path.to.MyClass"), []);
    

    几点说明:

    • resolveClass() 获取您需要的类的完整路径(包括包)
    • createInstance() 将应用于构造函数的值数组作为第二个参数。这些值必须是准确的数字,并且即使它们是可选的也必须传递(在这种情况下可以使用空值)。

    【讨论】:

    • 但是当我从字符串中获得类的名称时,我怎么知道实例数据类型的“MyClass”的名称?例如:gist.github.com/danbruegge/d51a9d233b4944327be6 我用一个函数创建了这个类。但是我怎么知道变量实例的数据类型呢?
    • @danbruegge,如果你想在运行时输入一些东西,你就是不能。通常,您希望拥有一个可以依赖的通用共享类型,例如接口、基类或 typedef。
    猜你喜欢
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 2014-06-04
    • 2011-04-14
    • 2020-07-30
    相关资源
    最近更新 更多