public class _DynAnyStub extends ObjectImpl implements DynAny
DynAny对象可以被视为组件DynAnys的有序集合。 对于代表基本类型(如long)或无组件类型(如空异常)的DynAnys,组件的有序集合为空。 每个DynAny对象将当前位置的概念维护到其组件DynAnys的集合中。 当前位置由从0到n-1运行的索引值来标识,其中n是组件的数量。 特殊索引值-1表示当前位置。 对于不能具有当前位置的值(如空异常),索引值固定为-1。 如果使用具有组件的值初始化DynAny,则索引将初始化为0.创建未初始化的DynAny(即,没有值但具有允许组件的TypeCode的DynAny)之后,当前位置取决于类型由DynAny代表的价值。 (当前位置设置为0或-1,具体取决于新的DynAny是否为其组件获取默认值。)
迭代操作倒退,查找和下一个可以用于更改当前位置,并且current_component操作返回当前位置的组件。 component_count操作返回DynAny的组件数。 总而言之,这些操作可以对DynAny的组件执行迭代,例如(递归)检查其内容。
构造的DynAny对象是与构造类型相关联的DynAny对象。 有一个不同的接口,从DynAny接口继承,与IDL(固定,枚举,结构,序列,联合,数组,异常和值类型)中的每种构造类型相关联。
构造的DynAny对象导出可以创建新的DynAny对象的操作,每个对象都与构造的数据值的组件相关联。 作为示例,DynStruct与一个结构体值相关联。 这意味着DynStruct可能被视为拥有一个有序的组件集合,每个结构成员一个。 DynStruct对象导出可以创建新的DynAny对象的操作,每个对象都与结构体的成员相关联。
如果已经从另一个(构造的)DynAny对象获取DynAny对象,例如DynAny表示从DynStruct创建的结构成员,则DynAny会在逻辑上包含DynStruct。 调用插入或获取操作使当前位置保持不变。 销毁顶层DynAny对象(未作为另一个DynAny的组件获取的对象)也会销毁从其获取的任何组件DynAny对象。 销毁非顶级DynAny对象什么都不做。 对已销毁的顶级DynAny或其任何后代调用操作会引发OBJECT_NOT_EXIST。 如果程序员想要销毁一个DynAny对象,但是仍然想要操作与它相关联的数据值的某个组件,那么他或她应该首先为该组件创建一个DynAny,然后创建一个创建的DynAny对象的副本。
已经定义了DynAny对象的行为,以便在分配的内存空间和访问速度方面实现高效的实现。 DynAny对象旨在用于遍历从anys提取的值或在运行时构建anys的值。 不建议将其用于其他目的。
处理基本的DynAny对象需要插入和获取操作,但也有助于处理构造的DynAny对象。 将基本数据类型值插入构造的DynAny对象意味着初始化与DynAny对象关联的构造数据值的当前组件。 例如,在DynStruct上调用insert_boolean意味着在关联的struct数据值的当前位置插入一个布尔数据值。 如果TypeCode等同于DynAny中包含的TypeCode,或者如果DynAny具有组件,则类型与当前位置的DynAny的TypeCode相当,则该类型与插入或提取值是一致的。
DynAny和DynAnyFactory对象旨在在其创建和使用的进程的本地。 这意味着对DynAny和DynAnyFactory对象的引用不能导出到其他进程,或者使用ORB.object_to_string()进行外部化。 如果尝试这样做,违规行为会引发MARSHAL系统异常。 由于它们的接口在IDL中指定,所以DynAny对象导出在标准org.omg.CORBA.Object接口中定义的操作。 但是,任何调用通过Object接口导出的操作的尝试可能会引发标准的NO_IMPLEMENT异常。 尝试在DII中使用DynAny对象可能会引发NO_IMPLEMENT异常。
| Constructor and Description | 
|---|
| _DynAnyStub() | 
| Modifier and Type | Method and Description | 
|---|---|
| String[] | _ids()
              检索包含此 
              ObjectImpl对象支持的存储库标识符的字符串数组。 | 
| void | assign(DynAny dyn_any)
              使用与另一个DynAny对象关联的值初始化与DynAny对象关联的值。 
             | 
| int | component_count()
              返回DynAny的组件数。 
             | 
| DynAny | copy()
              创建一个新的DynAny对象,该对象的值是调用它的DynAny的深层副本。 
             | 
| DynAny | current_component()
              返回当前位置的组件的DynAny。 
             | 
| void | destroy()
              销毁DynAny对象。 
             | 
| boolean | equal(DynAny dyn_any)
              比较两个DynAny值以获得相等性。 
             | 
| void | from_any(Any value)
              使用任何值中包含的值初始化与DynAny对象关联的值。 
             | 
| Any | get_any()
              提取由DynAny表示的Any中包含的任何值。 
             | 
| boolean | get_boolean()
              从此DynAny中提取布尔值。 
             | 
| char | get_char()
              从此DynAny中提取字符值。 
             | 
| double | get_double()
              从此DynAny中提取双重值。 
             | 
| DynAny | get_dyn_any()
              提取由该DynAny表示的Any中包含的Any值,并将其返回包装到新的DynAny中。 
             | 
| float | get_float()
              从此DynAny中提取浮点值。 
             | 
| int | get_long()
              从此DynAny中提取整数值。 
             | 
| long | get_longlong()
              从DynAny中提取长的值。 
             | 
| byte | get_octet()
              从此DynAny中提取字节值。 
             | 
| Object | get_reference()
              从此DynAny中提取对CORBA对象的引用。 
             | 
| short | get_short()
              从此DynAny中提取短值。 
             | 
| String | get_string()
              从此DynAny中提取字符串值。 
             | 
| TypeCode | get_typecode()
              从此DynAny中提取TypeCode对象。 
             | 
| int | get_ulong()
              从此DynAny中提取整数值。 
             | 
| long | get_ulonglong()
              从DynAny中提取长的值。 
             | 
| short | get_ushort()
              从此DynAny中提取短值。 
             | 
| Serializable | get_val()
              从此DynAny中提取可序列化的对象。 
             | 
| char | get_wchar()
              从DynAny中提取长的值。 
             | 
| String | get_wstring()
              从此DynAny中提取字符串值。 
             | 
| void | insert_any(Any value)
              在此DynAny表示的Any中插入任何值。 
             | 
| void | insert_boolean(boolean value)
              在DynAny中插入一个布尔值。 
             | 
| void | insert_char(char value)
              在DynAny中插入一个char值。 
             | 
| void | insert_double(double value)
              在DynAny中插入一个双重值。 
             | 
| void | insert_dyn_any(DynAny value)
              将包含在参数DynAny中的Any值插入到此DynAny表示的Any中。 
             | 
| void | insert_float(float value)
              在DynAny中插入一个浮点值。 
             | 
| void | insert_long(int value)
              在DynAny中插入一个整数值。 
             | 
| void | insert_longlong(long value)
              在DynAny中插入一个长的值。 
             | 
| void | insert_octet(byte value)
              在DynAny中插入一个字节值。 
             | 
| void | insert_reference(Object value)
              将CORBA对象的引用插入到DynAny中。 
             | 
| void | insert_short(short value)
              在DynAny中插入一个简短的值。 
             | 
| void | insert_string(String value)
              在DynAny中插入一个字符串值。 
             | 
| void | insert_typecode(TypeCode value)
              将TypeCode对象插入到DynAny中。 
             | 
| void | insert_ulong(int value)
              在DynAny中插入一个整数值。 
             | 
| void | insert_ulonglong(long value)
              在DynAny中插入一个长的值。 
             | 
| void | insert_ushort(short value)
              在DynAny中插入一个简短的值。 
             | 
| void | insert_val(Serializable value)
              将可序列化对象的引用插入此DynAny。 
             | 
| void | insert_wchar(char value)
              在DynAny中插入一个char值。 
             | 
| void | insert_wstring(String value)
              在DynAny中插入一个字符串值。 
             | 
| boolean | next()
              将当前位置提前到下一个组件。 
             | 
| void | rewind()
              相当于seek(0)。 
             | 
| boolean | seek(int index)
              将当前位置设置为索引。 
             | 
| Any | to_any()
              从DynAny对象创建任何值。 
             | 
| TypeCode | type()
              返回与此DynAny对象关联的TypeCode。 
             | 
_create_request, _create_request, _duplicate, _get_delegate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _invoke, _is_a, _is_equivalent, _is_local, _non_existent, _orb, _release, _releaseReply, _request, _request, _servant_postinvoke, _servant_preinvoke, _set_delegate, _set_policy_override, equals, hashCode, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, wait_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _is_a, _is_equivalent, _non_existent, _release, _request, _set_policy_overridepublic static final 类 _opsClass
public TypeCode type()
type在接口 
            DynAnyOperations 
           public void assign(DynAny dyn_any) throws TypeMismatch
assign在接口 
            DynAnyOperations 
           dyn_any - 
           TypeMismatch - 如果传递的DynAny的类型不等于目标的类型DynAny 
           public void from_any(Any value) throws TypeMismatch, InvalidValue
from_any在接口 
            DynAnyOperations 
           TypeMismatch - 如果传递的Any类型不等于目标DynAny的类型 
           InvalidValue - 如果传递的Any不包含合法值(如空字符串) 
           public Any to_any()
to_any在接口 
            DynAnyOperations 
           public boolean equal(DynAny dyn_any)
equal在接口 
            DynAnyOperations 
           public void destroy()
destroy在界面 
            DynAnyOperations 
           public DynAny copy()
copy在接口 
            DynAnyOperations 
           public void insert_boolean(boolean value)
                    throws TypeMismatch,
                           InvalidValue 
          insert_boolean在界面 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_octet(byte value)
                  throws TypeMismatch,
                         InvalidValue 
          insert_octet在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_char(char value)
                 throws TypeMismatch,
                        InvalidValue 
          insert_char在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_short(short value)
                  throws TypeMismatch,
                         InvalidValue 
          insert_short在界面 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_ushort(short value)
                   throws TypeMismatch,
                          InvalidValue 
          insert_ushort在界面 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_long(int value)
                 throws TypeMismatch,
                        InvalidValue 
          insert_long在界面 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_ulong(int value)
                  throws TypeMismatch,
                         InvalidValue 
          insert_ulong在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_float(float value)
                  throws TypeMismatch,
                         InvalidValue 
          insert_float在界面 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_double(double value)
                   throws TypeMismatch,
                          InvalidValue 
          insert_double在界面 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_string(String value) throws TypeMismatch, InvalidValue
insert_string在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           InvalidValue - 如果插入的字符串长于有界字符串的边界 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_reference(Object value) throws TypeMismatch, InvalidValue
insert_reference在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_typecode(TypeCode value) throws TypeMismatch, InvalidValue
insert_typecode在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_longlong(long value)
                     throws TypeMismatch,
                            InvalidValue 
          insert_longlong在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_ulonglong(long value)
                      throws TypeMismatch,
                             InvalidValue 
          insert_ulonglong在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_wchar(char value)
                  throws TypeMismatch,
                         InvalidValue 
          insert_wchar在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_wstring(String value) throws TypeMismatch, InvalidValue
insert_wstring在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           InvalidValue - 如果插入的字符串长于有界字符串的边界 
           TypeMismatch 
           public void insert_any(Any value) throws TypeMismatch, InvalidValue
insert_any在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_dyn_any(DynAny value) throws TypeMismatch, InvalidValue
insert_dyn_any在接口 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public void insert_val(Serializable value) throws TypeMismatch, InvalidValue
insert_val在界面 
            DynAnyOperations 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           public boolean get_boolean()
                    throws TypeMismatch,
                           InvalidValue 
          get_boolean在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public byte get_octet()
               throws TypeMismatch,
                      InvalidValue 
          get_octet在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public char get_char()
              throws TypeMismatch,
                     InvalidValue 
          get_char在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public short get_short()
                throws TypeMismatch,
                       InvalidValue 
          get_short在界面 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public short get_ushort()
                 throws TypeMismatch,
                        InvalidValue 
          get_ushort在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于所请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public int get_long()
             throws TypeMismatch,
                    InvalidValue 
          get_long在界面 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public int get_ulong()
              throws TypeMismatch,
                     InvalidValue 
          get_ulong在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public float get_float()
                throws TypeMismatch,
                       InvalidValue 
          get_float在界面 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于所请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public double get_double()
                  throws TypeMismatch,
                         InvalidValue 
          get_double在界面 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于所请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public String get_string() throws TypeMismatch, InvalidValue
get_string在界面 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public Object get_reference() throws TypeMismatch, InvalidValue
get_reference在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public TypeCode get_typecode() throws TypeMismatch, InvalidValue
get_typecode在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public long get_longlong()
                  throws TypeMismatch,
                         InvalidValue 
          get_longlong在界面 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于所请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public long get_ulonglong()
                   throws TypeMismatch,
                          InvalidValue 
          get_ulonglong在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public char get_wchar()
               throws TypeMismatch,
                      InvalidValue 
          get_wchar在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public String get_wstring() throws TypeMismatch, InvalidValue
get_wstring在界面 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue 
           public Any get_any() throws TypeMismatch, InvalidValue
get_any在界面 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public DynAny get_dyn_any() throws TypeMismatch, InvalidValue
get_dyn_any在界面 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中所访问的组件的类型不等同于所请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public Serializable get_val() throws TypeMismatch, InvalidValue
get_val在接口 
            DynAnyOperations 
           TypeMismatch - 如果DynAny中访问的组件的类型不等同于请求的类型。 
           TypeMismatch - 如果在当前组件本身具有组件的DynAny上调用 
           InvalidValue - 如果此DynAny具有组件但当前位置为-1 
           public boolean seek(int index)
seek在接口 
            DynAnyOperations 
           public void rewind()
rewind在界面 
            DynAnyOperations 
           public boolean next()
next在接口 
            DynAnyOperations 
           public int component_count()
component_count在接口 
            DynAnyOperations 
           public DynAny current_component() throws TypeMismatch
current_component在界面 
            DynAnyOperations 
           TypeMismatch - 如果在没有组件的DynAny上调用,例如DynEnum或空的异常 
           public String[] _ids()
ObjectImpl 
          ObjectImpl对象支持的存储库标识符的字符串数组。 
           例如,对于stub,此方法返回有关stub支持的所有接口的信息。 
          _ids在 
            ObjectImpl 
           ObjectImpl实例支持的所有存储库标识符阵列 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.