Qore:如何将哈希转换为对象

时间:2017-05-02 20:16:48

标签: qore

如何将hash转换为object?假设我有以下定义:

class A {
    int i;
    string s;
}
class B {
    int bi;
    A a;
}

hash h = (
    "bi" : 100,
    "A" : ("i" : 10, "s" : "str"));

有什么方法可以将h转换为类B的对象吗?

1 个答案:

答案 0 :(得分:2)

这是通用的吗?如果是这样,那么你需要更详细的结构。这样就可以清楚地表明' A'是一个对象,'我'是一个int等。

无论如何,只要对象不需要构造函数参数或者您知道它们应该是什么,就可以使用内置函数create_object来创建对象。然后你会设置所有成员,这意味着他们需要公开。您还可以迭代对象的公共成员,从而检查您的哈希是否提供了所有信息。

我不知道如何更多地了解对象,例如成员类型,方法签名等。但是,您要么知道对象(因此您可以为构造函数提供args或调用方法)在创建之后等)或者它必须是一个没有构造函数args和公共成员的简单对象(因为私有成员不能直接设置)。