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

Class _DynAnyFactoryStub

  • All Implemented Interfaces:
    SerializableObjectIDLEntityDynAnyFactoryDynAnyFactoryOperations


    public class _DynAnyFactoryStub
    extends ObjectImpl
    implements DynAnyFactory
    可以通过调用DynAnyFactory对象上的操作来创建DynAny对象。 通常只有两种方法来创建DynAny对象:
    • 调用对现有DynAny对象的操作
    • 在DynAnyFactory对象上调用操作
    构造的DynAny对象支持操作,可以创建新的DynAny对象,这些对象封装了对某些组件的值的访问。 DynAny对象还支持复制操作来创建新的DynAny对象。 通过调用ORB.resolve_initial_references()将标识符参数设置为字符串常量“DynAnyFactory”获得对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创建任何值。

    • 字段详细信息

      • _opsClass

        public static final Class _opsClass
    • 构造方法详细信息

      • _DynAnyFactoryStub

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

      • create_dyn_any

        public DynAny create_dyn_any​(Any value)
                              throws InconsistentTypeCode
        从任何值创建一个新的DynAny对象。 与任何值相关联的TypeCode的副本将分配给生成的DynAny对象。 与DynAny对象相关联的值是原始值中的值的副本。 如果传递的值具有组件,则创建的DynAny的当前位置将设置为零,否则为-1
        Specified by:
        create_dyn_any在接口 DynAnyFactoryOperations
        异常
        InconsistentTypeCode - 如果value具有TCKind为tk_Principal,tk_native或tk_abstract_interface的TypeCode
      • create_dyn_any_from_type_code

        public 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类型的代码,不包含值
        对于复杂类型,创建相应的DynAny将分配默认值,如下所示:
        • 对于DynSequence,它将当前位置设置为-1,并创建一个空序列。
        • 对于DynEnum,它将当前位置设置为-1,并将枚举器的值设置为TypeCode指示的第一个枚举器值。
        • 对于DynFixed,它将当前位置设置为-1,并将值设置为零。
        • 对于DynStruct,它为空异常设置当前位置为-1,对所有其他TypeCode设置为零。 成员(如果有的话)(递归地)被初始化为它们的默认值。
        • 对于DynArray,将当前位置设置为零,(递归)将元素初始化为其默认值。
        • 对于DynUnion,将当前位置设置为零。 鉴别器值被设置为与联合的第一个已命名成员一致的值。 该成员被激活并被递归地初始化为其默认值。
        • 对于DynValue和DynValueBox,它将初始化为一个空值。
        Specified by:
        create_dyn_any_from_type_code在接口 DynAnyFactoryOperations
        异常
        InconsistentTypeCode
      • _ids

        public String[] _ids​()
        描述从类别复制: ObjectImpl
        检索包含此ObjectImpl对象支持的存储库标识符的字符串数组。 例如,对于stub,此方法返回有关stub支持的所有接口的信息。
        Specified by:
        _idsObjectImpl
        结果
        ObjectImpl实例支持的所有存储库标识的数组