如何从 corba idl 获取 JAVA 对象
How to get a JAVA Object from corba idl
我被困在某件事上:我有一些 .idl 文件生成 java classes 从这些文件中定义的结构像这样:
struct MapServiceLayer{
string id;
string name;
string parentId;
OsTypes::StringSeq childrenIds;
};
但是我需要一个 JAVA class 其中一个属性必须是 Java.Object 类型,因为当我实例化这个 class 时,它的属性可能是不同的类型。所以我尝试了这个:
struct MapServiceFeatureAttribute{
OsTypes::ObjectSeq value;
};
还有这个:
struct MapServiceFeatureAttribute{
OsTypes::AnySeq value;
};
但其中 none 有效。
我也听说过 Unions,但我绝对不确定如何使用它们。如果有人知道如何从 idls 中获取 Java.Object,那就太好了。如果不可能,也许有人知道如何处理工会!
提前致谢。
经过更深入的研究,似乎无法获得 java.lang.object。但是,您可以使用 Any corba 对象进行操作:
生成源代码后,您将拥有一个 class 属性类型为 Any,此类型允许您使用以下方式在其中存储不同的类型:
Any anyObj;
anyObj.insert_string(String s);
anyObj.insert_long(long l);
anyObj.insert_double(double d);
你显然可以通过使用 :
来获取值和选择的类型
String s1 = anyObj.extract_string(String s);
long l1 = anyObj.extract_long(long l);
double d1 = anyObj.extract_double(double d);
我给出了这 3 种类型的示例,但还有更多。
我被困在某件事上:我有一些 .idl 文件生成 java classes 从这些文件中定义的结构像这样:
struct MapServiceLayer{
string id;
string name;
string parentId;
OsTypes::StringSeq childrenIds;
};
但是我需要一个 JAVA class 其中一个属性必须是 Java.Object 类型,因为当我实例化这个 class 时,它的属性可能是不同的类型。所以我尝试了这个:
struct MapServiceFeatureAttribute{
OsTypes::ObjectSeq value;
};
还有这个:
struct MapServiceFeatureAttribute{
OsTypes::AnySeq value;
};
但其中 none 有效。 我也听说过 Unions,但我绝对不确定如何使用它们。如果有人知道如何从 idls 中获取 Java.Object,那就太好了。如果不可能,也许有人知道如何处理工会!
提前致谢。
经过更深入的研究,似乎无法获得 java.lang.object。但是,您可以使用 Any corba 对象进行操作:
生成源代码后,您将拥有一个 class 属性类型为 Any,此类型允许您使用以下方式在其中存储不同的类型:
Any anyObj;
anyObj.insert_string(String s);
anyObj.insert_long(long l);
anyObj.insert_double(double d);
你显然可以通过使用 :
来获取值和选择的类型String s1 = anyObj.extract_string(String s);
long l1 = anyObj.extract_long(long l);
double d1 = anyObj.extract_double(double d);
我给出了这 3 种类型的示例,但还有更多。