-
- All Known Subinterfaces:
-
DynAnyFactory
- 所有已知实现类:
-
_DynAnyFactoryStub
public interface DynAnyFactoryOperations
可以通过调用DynAnyFactory对象上的操作来创建DynAny对象。 通常只有两种方法来创建DynAny对象:- 调用对现有DynAny对象的操作
- 在DynAnyFactory对象上调用操作
任何动态解释通常涉及使用create_dyn_any()作为第一步创建DynAny对象。 根据任何类型,可以将生成的DynAny对象引用缩小为DynFixed,DynStruct,DynSequence,DynArray,DynUnion,DynEnum或DynValue对象引用。
任何动态创建涉及使用create_dyn_any_from_type_code()创建DynAny对象,传递与要创建的值相关联的TypeCode。 返回的引用被缩小为一个复杂类型,如DynStruct(如果适用)。 然后,可以通过调用对结果对象的操作来初始化该值。 最后,可以调用to_any操作以从构造的DynAny创建任何值。
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 DynAny
create_dyn_any(Any value)
从任何值创建一个新的DynAny对象。DynAny
create_dyn_any_from_type_code(TypeCode type)
从TypeCode创建DynAny。
-
-
-
方法详细信息
-
create_dyn_any
DynAny create_dyn_any(Any value) throws InconsistentTypeCode
从任何值创建一个新的DynAny对象。 与任何值相关联的TypeCode的副本将分配给生成的DynAny对象。 与DynAny对象相关联的值是原始值中的值的副本。 如果传递的值具有组件,则创建的DynAny的当前位置将设置为零,否则为-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具有初始默认值。 基本类型的默认值为:- 对于布尔值为false
- 数字类型为零
- 零类型为八位字节,char和wchar
- 字符串和wstring的空字符串
- 对象引用为null
- 类型代码,类型代码的TCKind值为tk_null
- 对于任何值,任何包含TCKind值为tk_null类型的代码,不包含值
- 对于DynSequence,它将当前位置设置为-1,并创建一个空序列。
- 对于DynEnum,它将当前位置设置为-1,并将枚举器的值设置为TypeCode指示的第一个枚举器值。
- 对于DynFixed,它将当前位置设置为-1,并将值设置为零。
- 对于DynStruct,它为空异常设置当前位置为-1,对所有其他TypeCode设置为零。 成员(如果有的话)(递归地)被初始化为它们的默认值。
- 对于DynArray,将当前位置设置为零,(递归)将元素初始化为其默认值。
- 对于DynUnion,将当前位置设置为零。 鉴别器值被设置为与联合的第一个已命名成员一致的值。 该成员被激活并被递归地初始化为其默认值。
- 对于DynValue和DynValueBox,它将初始化为一个空值。
-
-