如何从corba idl获取Java对象

问题描述 投票:0回答:1

我被困在某些东西上:我有一些.idl文件,这些文件从这些文件中定义的结构生成Java类,如下所示:

struct MapServiceLayer{
        string id;
        string name;
        string parentId;
        OsTypes::StringSeq childrenIds;
    };

但是我需要一个JAVA类,其中的一个属性必须是Java.Object类型,因为当我实例化此类时,它的属性可能是不同类型。所以我尝试了这个:

struct MapServiceFeatureAttribute{
        OsTypes::ObjectSeq value;
    };

和此:

struct MapServiceFeatureAttribute{
            OsTypes::AnySeq value;
        };

但是这些都不起作用。我也听说过工会,但是我绝对不确定如何使用工会。如果有人知道如何从idls获取Java.Object,那就太好了。如果不可能,也许有人知道如何处理工会!

预先感谢。

java corba idl
1个回答
0
投票

经过一些更深入的研究,似乎不可能获得java.lang.object。但是,您可以使用Any corba对象来达到解决问题的目的:

生成源之后,您将拥有一个属性为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);

我给出了这三种类型的示例,但还有其他几种。

© www.soinside.com 2019 - 2024. All rights reserved.