gpt4 book ai didi

haxe - 使用 Type.getClassFields() 的结果

转载 作者:行者123 更新时间:2023-12-05 00:56:47 25 4
gpt4 key购买 nike

如何使用 getClassFields() 返回的静态字段名称?
Type本身似乎没有任何与此相关的功能,如果您使用 Reflect在上面返回的字段名称上是这样的:

trace(Reflect.field(Type.createEmptyInstance(Type.resolveClass(...)), fieldName));

...你得到:

TypeError: Error #1010: A term is undefined and has no properties.



我的目标是使用动态给定的类名获取静态字段的值,例如我怎样才能得到 "hi"在......之外:
class Blah {
public static var test:String="hi";
}

...当我事先不知道 Blah 时?

运行 Haxe 3.2.1。

最佳答案

这应该有效:

var cl = Type.resolveClass("Blah");
trace(Reflect.field(cl, "test"));

静态字段需要通过 Class<T> 访问类型,所以 createEmptyInstance()在这里不起作用。您需要将实例传递给 Reflect.field()如果要检索实例字段的值。

您还需要确保 Blah实际上已编译并在运行时可用。如果它仅通过反射引用,则情况并非如此 - 它需要在某处导入。如果您启用了 DCE,该类还需要 @:keep元数据。

关于haxe - 使用 Type.getClassFields() 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35717749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com