我想知道是否有可能将Dynamic转换为其他类(部分或全部)
例如,此代码中断:
class Test {
public function new() {}
public var id: String;
}
class Main {
public static function main() {
var x:Dynamic = JsonParser.parse("{\"id\":\"sdfkjsdflk\"}");
var t:Test = cast(x, Test);
}
}
带有以下消息
类转换错误
但是,我的“ Test”类具有一个像动态对象一样的“ id”字段。(这是一个例子,我的用例比^^更复杂)
因此,我不了解如何从我的动态对象中获取对象。
这并不完全是将动态对象转换为类实例,但是可以完成相同的事情:
Type.createEmptyInstance
Reflect
例子:
import haxe.Json;
class Test {
public function new() {}
public var id: String;
}
class Main {
public static function main() {
var x:Dynamic = Json.parse("{\"id\":\"sdfkjsdflk\"}");
var t:Test = Type.createEmptyInstance(Test);
for (field in Type.getInstanceFields(Test))
if (Reflect.hasField(x, field))
Reflect.setProperty(t, field, Reflect.getProperty(x, field));
trace(t.id);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句