如何将hash转换为and object?假设我有以下定义:
class A {
int i;
string s;
}
class B {
int bi;
A a;
}
hash h = (
"bi" : 100,
"A" : ("i" : 10, "s" : "str"));有没有办法将h转换为B类的对象
发布于 2017-05-03 06:31:04
这是通用的吗?如果是这样,那么您需要更详细的结构。这样可以清楚地说明“A”是一个对象,“I”是一个int,等等。
无论如何,有一个内置的函数create_object,只要对象不需要构造函数参数或者您知道它们应该是什么,就可以使用它来创建对象。然后,您将设置所有成员,这意味着它们需要是公共的。您还可以迭代对象的公共成员,从而检查您的散列是否提供了所有信息。
我不知道如何了解对象的更多信息,比如成员类型、方法签名等。不过,你要么知道对象(这样你就可以为构造函数提供参数,或者在创建后调用方法等),要么它必须是一个没有构造函数参数和公共成员的简单对象(因为不能直接设置私有成员)。
https://stackoverflow.com/questions/43746521
复制相似问题