有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

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

谢谢


共 (2) 个答案

  1. # 1 楼答案

    当然可以

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

  2. # 2 楼答案

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

    http://www.omg.org/spec/I2JAV/1.3/

    回答他的问题:显然,java实际上并没有指定序列对象,即使您键入def。当然,欢迎您手动执行此操作。但是,如果您想依靠idlj自动为您完成的工作,则必须使用<;ObjectType>;帮手JAVA它们使用类型为<;ObjectType>;[],并包括getter和setter

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

    struct MyObject
    {
      long my_int;
    };
    typedef sequence<MyObject> MyObjects;
    interface HasArray
    {
      attribute MyObjects some_stuff;
    };
    

    那么您的java实现将需要:

    public class HasArrayImpl extends HasArrayPOA
    {
      private List<MyObject> local_storage;
    
      /** getter */
      MyObject[] some_stuff()
      {
        /* ... */
      }
    
      /** setter */
      void some_stuff(MyObject[] newSome_stuff)
      {
        /* ... */
      }
    }
    

    在引擎盖下,Java将为您创建MyObjectsHelper和MyObjectsHolder