我有这个简单的代码从类中提取元值:
package;
@:rtti
class TestClass
{
@testMeta("test_val_0", "test_val_1")
var testVar = 0;
}
class Main
{
static function main()
{
trace(haxe.rtti.Meta.getFields(TestClass).testVar.testMeta[0]);
for( field in haxe.rtti.Rtti.getRtti(TestClass).fields )
if( field.name == "testVar" )
for( meta in field.meta )
if( meta.name == "testMeta" )
trace(meta.params[0]);
}
}
当我编译并运行它时,我得到了这个奇怪的结果:
c:\test_meta>haxe -main Main -neko test.n & neko test.n
Main.hx:14: test_val_0
Main.hx:19: "test_val_0"
这个结果好吗,或者我做错了什么?
答案 0 :(得分:2)
据我所知,你没有做错任何事,这绝对是一个奇怪的差异。
我刚用Haxe的最新开发分支对此进行了测试,其行为相同。我在Haxe's issue tracker上创建了一个问题,让Haxe团队了解这个潜在的错误。