public abstract class DynAnyHelper extends Object
一个dynany对象可以被视为dynanys组成的有序集合。表示一个基本型dynanys,如长,或一种无组件,如空例外,组件的有序集合是空的。每个dynany对象维护一个当前位置的概念纳入其成分dynanys收集。当前位置是由从0到n-1,指标值的确定,其中n是组件的数量。该特殊的索引值- 1表示一个指向的当前位置。对于不能具有当前位置(如空异常)的值,该索引值被固定在- 1。如果一个dynany与价值已组件初始化,初始化为0的指数。未初始化dynany创作后(即一个dynany没有价值但TypeCode允许组件),当前位置取决于由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对象用于将穿越从分析或构建价值分析在运行时提取的值。他们不建议使用其他用途。
插入到运作需要处理的基本dynany对象也有助于构建dynany对象处理。插入一个基本数据类型的值为一个对象初始化了dynany意味着构建数据值与dynany对象相关的电流分量。例如,调用insert_boolean在dynstruct意味着在相关的数据结构的值的当前位置插入一个布尔值。一类是用于插入或提取TypeCode值如果它相当于包含在dynany或TypeCode一致,如果dynany成分,是当前位置的dynany TypeCode等效。
dynany和dynanyfactory对物体进行局部在其中创建和使用过程。这意味着dynany和dynanyfactory对象的引用不能出口到其他进程,或与外在object_to_string()宝珠。如果做任何尝试这样做,违规操作将提高一个元帅系统异常。因为他们的接口中指定的标准org.omg.corba.object IDL接口中定义的对象dynany出口业务。然而,任何试图调用通过对象接口导出操作可以提高标准no_implement例外。尝试使用一个dynany对象与DiI可以提高no_implement例外。
Constructor and Description |
---|
DynAnyHelper() |
Modifier and Type | Method and Description |
---|---|
static DynAny |
extract(Any a) |
static String |
id() |
static void |
insert(Any a, DynAny that) |
static DynAny |
narrow(Object obj) |
static DynAny |
read(InputStream istream) |
static TypeCode |
type() |
static DynAny |
unchecked_narrow(Object obj) |
static void |
write(OutputStream ostream, DynAny value) |
public static TypeCode type()
public static String id()
public static DynAny read(InputStream istream)
public static void write(OutputStream ostream, DynAny value)
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.