JavaTM 2 Platform
Standard Ed. 6

org.omg.DynamicAny
接口 DynAnyFactoryOperations

所有已知子接口:
DynAnyFactory
所有已知实现类:
_DynAnyFactoryStub

public interface DynAnyFactoryOperations

DynAny 对象可以通过调用 DynAnyFactory 对象上的操作来创建。一般来说,只有两种创建 DynAny 对象的方式:

已构造的 DynAny 对象支持允许创建新 DynAny 对象的操作,可在这些对象中封装对某个成分值的访问权限。DynAny 对象还支持用于创建新 DynAny 对象的复制操作。通过调用 ORB.resolve_initial_references() 并将标识符参数设置为字符串常量 "DynAnyFactory",可以获取 DynAnyFactory 对象的引用。

动态解释 any 的第一步通常是使用 create_dyn_any() 创建 DynAny 对象。所得 DynAny 对象引用集中于 DynFixed、DynStruct、DynSequence、DynArray、DynUnion、DynEnum 或 DynValue 这几种对象引用,因 any 的类型而异。

动态创建 any 需要使用 create_dyn_any_from_type_code() 创建 DynAny 对象,并传递与要创建的值关联的 TypeCode。返回的引用将集中为复合类型之一,如 DynStruct(如果合适)。然后,通过在所得对象上调用操作来初始化值。最后,可调用 to_any 操作根据已构造的 DynAny 创建 any 值。


方法摘要
 DynAny create_dyn_any_from_type_code(TypeCode type)
          根据 TypeCode 创建 DynAny。
 DynAny create_dyn_any(Any value)
          根据 any 值创建新 DynAny 对象。
 

方法详细信息

create_dyn_any

DynAny create_dyn_any(Any value)
                      throws InconsistentTypeCode
根据 any 值创建新 DynAny 对象。将与 any 值关联的 TypeCode 的副本分配给所得 DynAny 对象。与 DynAny 对象关联的值是原始 any 中值的副本。如果传递的值具有组件,则将已创建的 DynAny 的当前位置设置为 0;否则设置为 -1。

抛出:
InconsistentTypeCode - 如果值具有 TCKind 为 tk_Principal、tk_native 或 tk_abstract_interface 的 TypeCode

create_dyn_any_from_type_code

DynAny create_dyn_any_from_type_code(TypeCode type)
                                     throws InconsistentTypeCode
根据 TypeCode 创建 DynAny。根据 TypeCode 的不同,创建的对象可能为 DynAny 类型,也可能为其派生类型之一(如 DynStruct)。返回的引用可以集中为派生类型。无论是哪种情况,根据 TypeCode 构造的 DynAny 都具有初始默认值。基本类型的默认值如下: 对于复合类型,创建相应 DynAny 时默认值的分配如下:

抛出:
InconsistentTypeCode

JavaTM 2 Platform
Standard Ed. 6

提交错误或意见

版权所有 2008 Sun Microsystems, Inc. 保留所有权利。请遵守GNU General Public License, version 2 only