java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

org.omg.DynamicAny
接口 DynAny

所有超级接口:
DynAnyOperations, IDLEntity, Object, Serializable
所有已知子接口:
DynArray, DynEnum, DynFixed, DynSequence, DynStruct, DynUnion, DynValue, DynValueBox, DynValueCommon
所有已知实现类:
_DynAnyStub, _DynArrayStub, _DynEnumStub, _DynFixedStub, _DynSequenceStub, _DynStructStub, _DynUnionStub, _DynValueStub

public interface DynAny
extends DynAnyOperations, Object, IDLEntity

通过 DynAny 对象可以动态解释(遍历)和构造 Any 值。DynAny 对象与对应于插入 any 的值的副本的数据值相关联。

DynAny 对象可视为一个有序的 DynAny 组件集合。对于表示基本类型(如 long)或没有组件的类型(如空异常)的 DynAny,有序的组件集合为空。每个 DynAny 对象在其组件 DynAny 集合中都有一个当前位置。当前位置由 0 到 n-1 的索引值标识,其中 n 为组件数。特殊索引值 -1 指示不指向任何位置的当前位置。对于不能有当前位置的值(如空异常),索引值始终为 -1。如果使用具有组件的值初始化 DynAny,则索引被初始化为 0。在创建未初始化的 DynAny(即不具有值但具有允许组件的 TypeCode 的 DynAny)之后,当前位置取决于由 DynAny 表示的值的类型。(将当前位置设置为 0 还是 -1 取决于新 DynAny 是否获取了其组件的默认值。)

迭代操作 rewind、seek 和 next 可用于更改当前位置,current_component 操作返回当前位置的组件。component_count 操作返回 DynAny 的组件数。总体上说,这些操作都能在 DynAny 的组件上进行迭代,从而能够(例如)检查其内容(递归式)。

已构造的 DynAny 对象是与构造类型关联的 DynAny 对象。还有一种从 DynAny 接口继承而来的接口,它与 IDL 中的每种构造类型(fixed、enum、struct、sequence、union、array、exception 和 value 类型)相关联。

已构造的 DynAny 对象导出支持创建新 DynAny 对象的操作,每个对象都与已构造数据值的组件相关联。例如,DynStruct 与 struct 值关联。这意味着 DynStruct 可视为拥有一个有序的组件集合,每个结构成员一个。DynStruct 对象导出支持创建新 DynAny 对象的操作,其中每个对象都与 struct 的成员关联。

如果 DynAny 对象是从另一个(已构造)DynAny 对象获取的(如表示从 DynStruct 创建的结构成员的 DynAny),则成员 DynAny 在逻辑上包含在 DynStruct 中。调用 insert 或 get 操作不更改当前位置。销毁顶级 DynAny 对象(不是作为另一个 DynAny 的组件获取的)将同时销毁从其获取的所有 DynAny 对象组件。销毁非顶级 DynAny 对象的操作没有任何效果。在已销毁的顶级 DynAny 或其任何子代上调用操作将引发 OBJECT_NOT_EXIST。如果程序员要销毁 DynAny 对象,但还需要操作与其关联的数据值的某个组件,则应该首先为该组件创建一个 DynAny,然后生成所创建的 DynAny 对象的副本。

为了支持高效实现,根据分配的内存空间和存取速度定义 DynAny 对象的行为。DynAny 对象旨在用于遍历从 any 析取的值,或用于在运行时构造 any 的值。不建议将其用于其他目的。

Insert 和 get 操作是处理基本 DynAny 对象所必需的,但是也可以使用它们来处理已构造的 DynAny 对象。将基本数据类型值插入已构造的 DynAny 对象意味着初始化与 DynAny 对象关联的已构造数据值的当前组件。例如,对 DynStruct 调用 insert_boolean 意味着在关联的 struct 数据值的当前位置插入 boolean 数据值。如果某个类型的 TypeCode 等效于 DynAny 中包含的 TypeCode,或者等效于处于当前位置的 DynAny 的 TypeCode(如果 DynAny 具有组件),则该类型与插入值或析取值一致。

DynAny 和 DynAnyFactory 对象对于创建和使用它们的进程而言是本地的。这意味着不能将对 DynAny 和 DynAnyFactory 对象的引用导出到其他进程,也不能通过 ORB.object_to_string() 使其具体化。如果进行这样的尝试,则该违反规则的操作将引发 MARSHAL 系统异常。由于它们的接口是在 IDL 中指定的,所以 DynAny 对象导出在标准 org.omg.CORBA.Object 接口中定义的操作。但是,任何尝试调用通过 Object 接口导出的操作都会引发标准 NO_IMPLEMENT 异常。尝试使用带有 DII 的 DynAny 对象将引发 NO_IMPLEMENT 异常。


方法摘要
 
从接口 org.omg.DynamicAny.DynAnyOperations 继承的方法
assign, component_count, copy, current_component, destroy, equal, from_any, get_any, get_boolean, get_char, get_double, get_dyn_any, get_float, get_long, get_longlong, get_octet, get_reference, get_short, get_string, get_typecode, get_ulong, get_ulonglong, get_ushort, get_val, get_wchar, get_wstring, insert_any, insert_boolean, insert_char, insert_double, insert_dyn_any, insert_float, insert_long, insert_longlong, insert_octet, insert_reference, insert_short, insert_string, insert_typecode, insert_ulong, insert_ulonglong, insert_ushort, insert_val, insert_wchar, insert_wstring, next, rewind, seek, to_any, type
 
从接口 org.omg.CORBA.Object 继承的方法
_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _is_a, _is_equivalent, _non_existent, _release, _request, _set_policy_override
 


JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策