gpt4 book ai didi

java - 在 Java CORBA 中传递 DII 争论

转载 作者:太空宇宙 更新时间:2023-11-04 07:41:39 25 4
gpt4 key购买 nike

我有以下 IDL 接口(interface):

  interface ItemA : Item {
void actionA(in float a, out long b);
};

在我的 Java 实现中,我想动态调用操作 actionA(使用 DII)。这里的 item 对象实现了 Item 接口(interface),因此对 actionA 一无所知。这是片段:

org.omg.CORBA.Request r = item._request("actionA");
r.add_in_arg().insert_float(a);
// add the out argument
r.set_return_type(orb.get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
r.invoke();
// get the out argument result

我该如何填补这些空白?我尝试了各种方法,主要是 r.add_out_arg() 的不同用法,但似乎没有任何效果。我非常感谢您的帮助!

最佳答案

试试这个:

org.omg.CORBA.Request r = item._request("actionA");
r.add_in_arg().insert_float(a);
Any val = r.add_out_arg();
val.type(orb.get_primitive_tc(TCKind.tk_long));
r.set_return_type(orb.get_primitive_tc(org.omg.CORBA.TCKind.tk_void));
r.invoke();

if( r.env().exception() == null )
{
System.out.println("returned: " + r.arguments().item(1).value().extract_long());
}

它对我有用(我已经在某处看到过这个 idl...:P)。

关于java - 在 Java CORBA 中传递 DII 争论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15988572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com