Module  java.corba
软件包  org.omg.CORBA

Class NamedValue



  • public abstract class NamedValue
    extends Object
    DII和DSI中使用的对象来描述参数和返回值。 NamedValue对象也用于Context对象例程中传递属性名和值的列表。

    一个NamedValue对象包含:

    • 一个名称 - 如果NamedValue对象用于描述请求的参数,则该名称将是OMG IDL接口定义中为要描述的操作定义的参数标识符。
    • 一个值 - 一个Any对象
    • 参数模式标志 - 以下之一:
      • ARG_IN.value
      • ARG_OUT.value
      • ARG_INOUT.value
      • 零-如果此NamedValue对象表示一个属性Context对象,而不是参数或返回值

    NamedValue有三种访问其领域的方法。 以下代码片段演示如何创建一个NamedValue对象,然后访问其字段:

      ORB orb = ORB.init(args, null);
        String s = "argument_1";
        org.omg.CORBA.Any myAny = orb.create_any();
        myAny.insert_long(12345);
        int in = org.omg.CORBA.ARG_IN.value;
    
        org.omg.CORBA.NamedValue nv = orb.create_named_value(
            s, myAny, in);
        System.out.println("This nv name is " + nv.name());
        try {
            System.out.println("This nv value is " + nv.value().extract_long());
            System.out.println("This nv flag is " + nv.flags());
        } catch (org.omg.CORBA.BAD_OPERATION b) {
          System.out.println("extract failed");
        } 

    如果这个代码片段被放入一个main方法中,输出结果将如下所示:

      This nv name is argument_1
        This nv value is 12345
        This nv flag is 1 

    请注意,方法value返回一个Any对象。 为了访问所述long包含在Any对象,我们使用的方法extract_long

    从以下版本开始:
    JDK1.2
    另请参见:
    AnyARG_INARG_INOUTARG_OUT
    • 构造方法详细信息

      • NamedValue

        public NamedValue​()
    • 方法详细信息

      • name

        public abstract String name​()
        检索此 NamedValue对象的名称。
        结果
        一个表示 String对象的名称的 NamedValue对象
      • value

        public abstract Any value​()
        检索此 NamedValue对象的值。
        结果
        一个包含该 Any对象的值的 NamedValue对象
      • flags

        public abstract int flags​()
        检索此 NamedValue对象的参数模式标志。
        结果
        一个 int表示这个 NamedValue对象的参数模式