<div> JavaScript is disabled on your browser.
Skip navigation links
Java™ Platform
Standard Ed. 8

Package org.omg.DynamicAny

提供类和接口,使运行时的 any相关数据值的遍历,以及数据价值的原始成分的提取。

See: 描述

Package org.omg.DynamicAny Description

提供类和接口,使运行时的any相关数据值的遍历,以及数据价值的原始成分的提取。

一个any可以通过一个程序,不会对any类型有静态信息(代码生成的IDL编译器的类型并没有与对象实现编译)。作为一个结果,对象接收any没有用它携带的方法。

DynAnys启用与运行时间的any相关数据值的遍历,以及数据价值的原始成分的提取。这是特别有用的编写功能强大的通用服务器(桥梁,事件通道支持过滤)。同样,这个设施可以在运行时any建设,没有该类型的静态知识。这是写通用的客户特别有用(桥梁、浏览器、调试器用户界面工具)。

Any值可以动态地解释(遍历),通过DynAny对象构造。一个DynAny对象和一个数据值对应一个拷贝插入Any值相关。一个DynAny对象可以被视为DynAnys组成的有序集合。表示一个基本型DynAnys,如long,或一种无组件,如空例外,组件的有序集合是空的。

每个DynAny对象维护一个当前位置的概念纳入其成分DynAnys集合。当前位置是由从0到n-1,指标值的确定,其中n是组件的数量。该特殊的索引值- 1表示一个指向的当前位置。对于不能具有当前位置(如空异常)的值,该索引值被固定在- 1。如果一个DynAny与价值已组件初始化,初始化为0的指数。未初始化DynAny创作后(即一个DynAny,没有价值,但TypeCode允许组件),目前的位置取决于DynAny表示的值的类型。(当前位置设置为0或1,这取决于新的DynAny获取默认值,其成分。)

rewind迭代操作,seek,和next可以用来改变当前位置和current_component操作返回当前位置的组件。的component_count操作返回一个DynAny组件数量。总的来说,这些操作可以在一DynAny,组件迭代(递归)为例,来考察其内容。

构建DynAny对象是一种构造类型相关的DynAny对象。有一个不同的接口,从DynAny接口继承,每一种构造类型在IDL相关(固定、枚举、结构、序列、联盟、阵列、例外,和值类型)。构建DynAny对象出口操作,使新DynAny创作对象,他们所构建的数据值的组件关联。作为一个例子,一个DynStructstruct值相关联的。这意味着DynStruct可能被视为拥有组成的有序集合,每一个结构部件。对象的DynStruct出口操作,使新DynAny创作对象,每个人的struct成员相关。

如果一个DynAny对象已获得从另一个(构造)DynAny对象,如DynAny代表的结构构件,是从一个DynStruct创建,成员DynAny逻辑包含在DynStruct。调用一个insertget操作离开当前位置不变。摧毁一个顶级DynAny对象(一个没有得到另一个DynAny组件)也破坏DynAny对象从它得到任何组件。摧毁一个非顶级DynAny对象不。调用操作在破坏顶层DynAny或其后裔提出object_not_exist。如果程序员想破坏DynAny对象但仍想操纵与它相关的数据值的一些成分,那么他或她应该首先为组件创建一个DynAny,之后,复制创建的DynAny对象。

DynAny对象的行为被定义为使分配的内存空间和访问速度方面的有效实现。DynAny对象用于将穿越从anys或构建anys值在运行时提取的值。他们不建议使用其他用途。

dynany对象处理

Insertget运作需要处理的基本DynAny对象也有助于构建DynAny对象处理。插入一个基本数据类型的值为一个对象初始化了DynAny意味着构建数据值与DynAny对象相关的电流分量。例如,调用insert_booleanDynStruct意味着相关的struct数据值的当前位置插入一个boolean数据值。一类是用于插入或提取一个值如果TypeCode相当于包含在DynAnyTypeCode一致,如果DynAny成分,是当前位置的DynAnyTypeCode等效。

基本操作包括:

DynAnyDynAnyFactory对物体进行局部在其中创建和使用过程。这意味着DynAnyDynAnyFactory对象的引用不能出口到其他进程,或与外在ORB.object_to_string()。如果做任何尝试这样做,违规操作将提高一个元帅系统异常。因为他们的接口中指定的标准org.omg.CORBA.Object IDL接口中定义的对象DynAny出口业务。然而,任何试图通过接口调用Object出口操作可能会提高标准no_implement例外。尝试使用一个DynAny对象与DiI可以提高no_implement例外。

包装规格

对于精确的列出与该java [商标]平台正式规范支持的部分,标准版6宝珠答应,看到Official Specifications for CORBA support in Java[tm] SE 6

从以下版本开始:
1.4
Skip navigation links
Java™ Platform
Standard Ed. 8

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.

本帮助文档是使用 《百度翻译》翻译,请与英文版配合使用 by--QQ:654638585