Java CORBA序列:我可以用方法定义对象序列吗?

Java CORBA序列:我可以用方法定义对象序列吗?,java,rpc,sequence,idl,corba,Java,Rpc,Sequence,Idl,Corba,我有一个接口,该接口带有一个方法,该方法应该返回一个项目列表,并且每个项目都应该有与之关联的特定方法。例如,我想定义一个方法listalItems(),它返回一组“item”对象,这些对象附加了方法(因此我可以让客户机进程选择其中一个项,例如itemone.buy(),它将在服务器上执行相应的方法) 我能用CORBA做这个吗?似乎我不能定义“接口项”,然后在其他接口中说“顺序” 我将把我的idl编译成Java,如果它起作用的话 谢谢 当然可以 你必须提供更多的细节,说明为什么你说它不适合你。但是

我有一个接口,该接口带有一个方法,该方法应该返回一个项目列表,并且每个项目都应该有与之关联的特定方法。例如,我想定义一个方法listalItems(),它返回一组“item”对象,这些对象附加了方法(因此我可以让客户机进程选择其中一个项,例如itemone.buy(),它将在服务器上执行相应的方法)

我能用CORBA做这个吗?似乎我不能定义“接口项”,然后在其他接口中说“顺序”

我将把我的idl编译成Java,如果它起作用的话

谢谢

当然可以


你必须提供更多的细节,说明为什么你说它不适合你。但是我经常使用包含一系列接口的IDL。

佩顿需要的信息,IDL序列和Java集类型之间的概念映射,可以在本手册的物理页42,索引页23上找到:

回答他的问题:显然,java实际上并没有指定序列对象,即使您键入def。当然,欢迎您手动执行此操作。但是如果你想依靠idlj自动为你做的事情,你必须使用Helper.java中的方法。它们使用[]类型的简单数组,包括getter和setter

简而言之:如果您的idl包含

struct MyObject
{
  long my_int;
};
typedef sequence<MyObject> MyObjects;
interface HasArray
{
  attribute MyObjects some_stuff;
};
struct MyObject
{
长我的心;
};
类型定义序列肌对象;
接口阵列
{
属性MyObjects包含一些东西;
};
那么您的java实现将需要:

public class HasArrayImpl extends HasArrayPOA
{
  private List<MyObject> local_storage;

  /** getter */
  MyObject[] some_stuff()
  {
    /* ... */
  }

  /** setter */
  void some_stuff(MyObject[] newSome_stuff)
  {
    /* ... */
  }
}
公共类HasArrayImpl扩展了HasArrayPOA
{
私有列表本地存储;
/**吸气剂*/
MyObject[]一些东西()
{
/* ... */
}
/**塞特*/
作废某些内容(MyObject[]newSome\u内容)
{
/* ... */
}
}
在引擎盖下,Java将为您创建MyObjectsHelper和MyObjectsHolder