将Dynamic投放到其他课程

皮克莫

我想知道是否有可能将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”字段。(这是一个例子,我的用例比^^更复杂)

因此,我不了解如何从我的动态对象中获取对象。

Heyitsbmo

这并不完全是将动态对象转换为类实例,但是可以完成相同的事情:

  • 用创建空类的实例 Type.createEmptyInstance
  • 使用以下命令在新类实例上设置Dynamic对象的所有字段 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Dynamic投放到其他课程

来自分类Dev

返校或其他课程

来自分类Dev

返校或其他课程

来自分类Dev

在其他路线之前投放资产

来自分类Dev

Postgres投放到TIMESTAMPTZ

来自分类Dev

iOS投放到BOOL

来自分类Dev

SIGABRT投放到UIImage

来自分类Dev

无法投放课程错误

来自分类Dev

jQuery Select2:将选定的选项放到其他容器中

来自分类Dev

将导航栏元素放到最左侧,而其他元素居中

来自分类Dev

jQuery Select2:将选定的选项放到其他容器中

来自分类Dev

如何使用 PHP 将任何其他网站的视频播放到我的网站?

来自分类Dev

如何将 OpenCV 的输出播放到 Kivy VideoPlayer 或任何其他播放器?

来自分类Dev

ckEditor 并拖放到其他容器

来自分类Dev

如何在其他课程中使用课程

来自分类Dev

在不使用其他课程的情况下测试课程

来自分类Dev

通过其他测试课程进行单元测试课程

来自分类Dev

在其他地方查看课程课程的内容

来自分类Dev

投放到Func对新Func?

来自分类Dev

从部分中删除其他课程

来自分类Dev

如何将iOS应用程序投放到更多国家/地区的商店

来自分类Dev

将XML上载并拖放到ruby中。使用进口商或诸如Nokugiri之类的其他公司

来自分类Dev

当我将鼠标悬停在其他菜单项上时,请删除课程

来自分类Dev

标题图像未缩放到其他屏幕

来自分类Dev

投放到Kodi解决方案

来自分类Dev

访问其他文件夹中的课程

来自分类Dev

在特定课程中,关闭其他库的logback日志记录

来自分类Dev

难以控制其他活动/课程的网页视图

来自分类Dev

从其他兄弟姐妹中删除课程