JavaTM 2 Platform
Standard Ed. 6

org.omg.CORBA
类 Any

java.lang.Object
  继承者 org.omg.CORBA.Any
所有已实现的接口:
Serializable, IDLEntity

public abstract class Any
extends Object
implements IDLEntity

充当可用 IDL 描述的任何数据或任何 IDL 基本类型的容器。Any 对象可用作 NamedValue 对象的组件,NamedValue 对象提供关于请求中的参数或返回值的信息,也用来定义 Context 对象中的名称/值对。

Any 对象由两部分组成:

  1. 数据值
  2. 描述 Any 对象中所包含数据值类型的 TypeCode 对象。例如,用于数组的 TypeCode 对象包含一个用于数组长度的字段和一个用于数组中元素类型的字段。(注意,在这种情况下,TypeCode 对象的第二个字段本身也是一个 TypeCode 对象。)

大部分 Any 类由以下方法对组成:将值插入 Any 对象的方法和从 Any 对象中析取值的方法。

对于某一给定的基本类型 X,这些方法是:

void insert_X(X x)
此方法允许将基本类型 X 的实例 x 插入 Any 对象的 value 字段。注意,如有必要,方法 insert_X 也能重置 Any 对象的 type 字段。
X extract_X()
此方法允许从 Any 对象中析取类型 X 的实例。

此方法在以下两种情况下抛出异常 BAD_OPERATION

  1. Any 对象中所包含元素的类型不是 X
  2. 在设置 Any 对象的 value 字段之前调用 extract_X 方法

对于每种基本 IDL 数据类型,存在不同的方法对(insert_longextract_longinsert_stringextract_string,等等)。

Any 类还拥有用于获取和设置类型代码的方法、用于测试两个 Any 对象是否相等的方法,以及用于从流中读取 Any 对象或将对象写入流中的方法。

从以下版本开始:
JDK1.2

构造方法摘要
Any()
           
 
方法摘要
abstract  InputStream create_input_stream()
          创建一个输入流,可以从中解组此 Any 对象的值。
abstract  OutputStream create_output_stream()
          创建一个输出流,可以将此 Any 对象的值编组到其中。
abstract  boolean equal(Any a)
          检查此 Any 对象与给定 Any 对象是否相等。
abstract  Any extract_any()
          提取此 Any 对象 value 字段中的 Any 对象。
abstract  boolean extract_boolean()
          提取此 Any 对象 value 字段中的 boolean 值。
abstract  char extract_char()
          提取此 Any 对象 value 字段中的 char 值。
abstract  double extract_double()
          提取此 Any 对象 value 字段中的 double 值。
 BigDecimal extract_fixed()
          提取此 Any 对象 value 字段中的 java.math.BigDecimal 对象。
abstract  float extract_float()
          提取此 Any 对象 value 字段中的 float 值。
abstract  int extract_long()
          提取此 Any 对象 value 字段中的 int 值。
abstract  long extract_longlong()
          提取此 Any 对象 value 字段中的 long 值。
abstract  Object extract_Object()
          提取此 Any 对象 value 字段中的 org.omg.CORBA.Object
abstract  byte extract_octet()
          提取此 Any 对象 value 字段中的 byte 值。
 Principal extract_Principal()
          已过时。 由 CORBA 2.2 取代。
abstract  short extract_short()
          提取此 Any 对象 value 字段中的 short 值。
 Streamable extract_Streamable()
          从此 Any 对象的 value 字段提取 Streamable
abstract  String extract_string()
          提取此 Any 对象 value 字段中的 String 对象。
abstract  TypeCode extract_TypeCode()
          提取此 Any 对象 value 字段中的 TypeCode 对象。
abstract  int extract_ulong()
          提取此 Any 对象 value 字段中的 int 值。
abstract  long extract_ulonglong()
          提取此 Any 对象 value 字段中的 long 值。
abstract  short extract_ushort()
          提取此 Any 对象 value 字段中的 short 值。
abstract  Serializable extract_Value()
          提取此 Any 对象 value 字段中的 java.io.Serializable 对象。
abstract  char extract_wchar()
          提取此 Any 对象 value 字段中的 char 值。
abstract  String extract_wstring()
          提取此 Any 对象 value 字段中的 String 对象。
abstract  void insert_any(Any a)
          将给定 Any 对象插入此 Any 对象的 value 字段。
abstract  void insert_boolean(boolean b)
          将给定 boolean 值插入此 Any 对象的 value 字段。
abstract  void insert_char(char c)
          将给定 char 值插入此 Any 对象的 value 字段。
abstract  void insert_double(double d)
          将给定 double 值插入此 Any 对象的 value 字段。
 void insert_fixed(BigDecimal value)
          抛出 org.omg.CORBA.NO_IMPLEMENT 异常。
 void insert_fixed(BigDecimal value, TypeCode type)
          抛出 org.omg.CORBA.NO_IMPLEMENT 异常。
abstract  void insert_float(float f)
          将给定 float 值插入此 Any 对象的 value 字段。
abstract  void insert_long(int l)
          将给定 int 值插入此 Any 对象的 value 字段。
abstract  void insert_longlong(long l)
          将给定 long 值插入此 Any 对象的 value 字段。
abstract  void insert_Object(Object o)
          将给定 org.omg.CORBA.Object 对象插入此 Any 对象的 value 字段。
abstract  void insert_Object(Object o, TypeCode t)
          将给定 org.omg.CORBA.Object 对象插入此 Any 对象的 value 字段。
abstract  void insert_octet(byte b)
          将给定 byte 值插入此 Any 对象的 value 字段。
 void insert_Principal(Principal p)
          已过时。 由 CORBA 2.2 取代。
abstract  void insert_short(short s)
          将给定 short 值插入此 Any 对象的 value 字段。
 void insert_Streamable(Streamable s)
          将给定 Streamable 对象插入此 Any 对象的 value 字段。
abstract  void insert_string(String s)
          将给定 String 对象插入此 Any 对象的 value 字段。
abstract  void insert_TypeCode(TypeCode t)
          将给定 TypeCode 对象插入此 Any 对象的 value 字段。
abstract  void insert_ulong(int l)
          将给定 int 值插入此 Any 对象的 value 字段。
abstract  void insert_ulonglong(long l)
          将给定 long 值插入此 Any 对象的 value 字段。
abstract  void insert_ushort(short s)
          将给定 short 值插入此 Any 对象的 value 字段。
abstract  void insert_Value(Serializable v)
          将给定 java.io.Serializable 对象插入此 Any 对象的 value 字段。
abstract  void insert_Value(Serializable v, TypeCode t)
          将给定 java.io.Serializable 对象插入此 Any 对象的 value 字段。
abstract  void insert_wchar(char c)
          将给定 char 值插入此 Any 对象的 value 字段。
abstract  void insert_wstring(String s)
          将给定 String 对象插入此 Any 对象的 value 字段。
abstract  void read_value(InputStream is, TypeCode t)
          使用给定 typecode 读出(解组)给定输入流中某一 Any 对象的值。
abstract  TypeCode type()
          返回此 Any 对象中所包含元素的类型信息。
abstract  void type(TypeCode t)
          将此 Any 对象的 type 字段设置为给定的 TypeCode 对象,并清除其值。
abstract  void write_value(OutputStream os)
          将此 Any 对象的值写出到给定输出流。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Any

public Any()
方法详细信息

equal

public abstract boolean equal(Any a)
检查此 Any 对象与给定 Any 对象是否相等。如果两个 Any 对象的值和类型代码都相等,则这两个对象相等。

参数:
a - 将测试其是否相等的 Any 对象
返回:
如果两个 Any 对象是相等的,则返回 true;否则返回 false
另请参见:
CORBA 包中有关未实现特性的注释

type

public abstract TypeCode type()
返回此 Any 对象中所包含元素的类型信息。

返回:
TypeCode 对象,它包含关于此 Any 对象中所包含值的类型信息。

type

public abstract void type(TypeCode t)
将此 Any 对象的 type 字段设置为给定的 TypeCode 对象,并清除其值。

注意,使用此方法设置类型代码会清除值(如果有)。提供该方法主要是为了能够为 IDL out 参数正确地设置类型。通常,设置类型由 insert_X 方法完成,如果类型没有被设置为 X,则该方法会将它设置为 X。

参数:
t - 为此 Any 对象中的值提供信息的 TypeCode 对象

read_value

public abstract void read_value(InputStream is,
                                TypeCode t)
                         throws MARSHAL
使用给定 typecode 读出(解组)给定输入流中某一 Any 对象的值。

参数:
is - org.omg.CORBA.portable.InputStream 对象,从其中读取此 Any 对象中所包含的值
t - 一个 TypeCode 对象,它包含关于要读取的值的类型信息
抛出:
MARSHAL - 当给定 TypeCode 对象与输入流中包含的值不一致时

write_value

public abstract void write_value(OutputStream os)
将此 Any 对象的值写出到给定输出流。如果 typecodevalue 都需要写入,则先使用 create_output_stream() 创建一个 OutputStream,然后对该 OutputStream 使用 write_any

如果对 Any 对象调用此方法,而该对象没有将某个值插入其 value 字段,则将抛出异常 java.lang.NullPointerException

参数:
os - org.omg.CORBA.portable.OutputStream 对象,此 Any 对象的值将被编组到其中

create_output_stream

public abstract OutputStream create_output_stream()
创建一个输出流,可以将此 Any 对象的值编组到其中。

返回:
新创建的 OutputStream

create_input_stream

public abstract InputStream create_input_stream()
创建一个输入流,可以从中解组此 Any 对象的值。

返回:
新创建的 InputStream

extract_short

public abstract short extract_short()
                             throws BAD_OPERATION
提取此 Any 对象 value 字段中的 short 值。

返回:
存储在此 Any 对象中的 short
抛出:
BAD_OPERATION - 如果此 Any 对象包含 short 以外的值,或者尚未设置 value 字段

insert_short

public abstract void insert_short(short s)
将给定 short 值插入此 Any 对象的 value 字段。

参数:
s - 将插入此 Any 对象中的 short

extract_long

public abstract int extract_long()
                          throws BAD_OPERATION
提取此 Any 对象 value 字段中的 int 值。

返回:
存储在此 Any 对象中的 int
抛出:
BAD_OPERATION - 如果此 Any 对象包含 int 以外的值,或者尚未设置 value 字段

insert_long

public abstract void insert_long(int l)
将给定 int 值插入此 Any 对象的 value 字段。

参数:
l - 将插入此 Any 对象中的 int

extract_longlong

public abstract long extract_longlong()
                               throws BAD_OPERATION
提取此 Any 对象 value 字段中的 long 值。

返回:
存储在此 Any 对象中的 long
抛出:
BAD_OPERATION - 如果此 Any 对象包含 long 以外的值,或者尚未设置 value 字段

insert_longlong

public abstract void insert_longlong(long l)
将给定 long 值插入此 Any 对象的 value 字段。

参数:
l - 将插入此 Any 对象中的 long

extract_ushort

public abstract short extract_ushort()
                              throws BAD_OPERATION
提取此 Any 对象 value 字段中的 short 值。

返回:
存储在此 Any 对象中的 short
抛出:
BAD_OPERATION - 如果此 Any 对象包含 short 以外的值,或者尚未设置 value 字段

insert_ushort

public abstract void insert_ushort(short s)
将给定 short 值插入此 Any 对象的 value 字段。

参数:
s - 将插入此 Any 对象中的 short

extract_ulong

public abstract int extract_ulong()
                           throws BAD_OPERATION
提取此 Any 对象 value 字段中的 int 值。

返回:
存储在此 Any 对象中的 int
抛出:
BAD_OPERATION - 如果此 Any 对象包含 int 以外的值,或者尚未设置 value 字段

insert_ulong

public abstract void insert_ulong(int l)
将给定 int 值插入此 Any 对象的 value 字段。

参数:
l - 将插入此 Any 对象中的 int

extract_ulonglong

public abstract long extract_ulonglong()
                                throws BAD_OPERATION
提取此 Any 对象 value 字段中的 long 值。

返回:
存储在此 Any 对象中的 long
抛出:
BAD_OPERATION - 如果此 Any 对象包含 long 以外的值,或者尚未设置 value 字段

insert_ulonglong

public abstract void insert_ulonglong(long l)
将给定 long 值插入此 Any 对象的 value 字段。

参数:
l - 将插入此 Any 对象中的 long

extract_float

public abstract float extract_float()
                             throws BAD_OPERATION
提取此 Any 对象 value 字段中的 float 值。

返回:
存储在此 Any 对象中的 float
抛出:
BAD_OPERATION - 如果此 Any 对象包含 float 以外的值,或者尚未设置 value 字段

insert_float

public abstract void insert_float(float f)
将给定 float 值插入此 Any 对象的 value 字段。

参数:
f - 将插入此 Any 对象中的 float

extract_double

public abstract double extract_double()
                               throws BAD_OPERATION
提取此 Any 对象 value 字段中的 double 值。

返回:
存储在此 Any 对象中的 double
抛出:
BAD_OPERATION - 如果此 Any 对象包含 double 以外的值,或者尚未设置 value 字段

insert_double

public abstract void insert_double(double d)
将给定 double 值插入此 Any 对象的 value 字段。

参数:
d - 将插入此 Any 对象中的 double

extract_boolean

public abstract boolean extract_boolean()
                                 throws BAD_OPERATION
提取此 Any 对象 value 字段中的 boolean 值。

返回:
存储在此 Any 对象中的 boolean
抛出:
BAD_OPERATION - 如果此 Any 对象包含 boolean 以外的值,或者尚未设置 value 字段

insert_boolean

public abstract void insert_boolean(boolean b)
将给定 boolean 值插入此 Any 对象的 value 字段。

参数:
b - 将插入此 Any 对象中的 boolean

extract_char

public abstract char extract_char()
                           throws BAD_OPERATION
提取此 Any 对象 value 字段中的 char 值。

返回:
存储在此 Any 对象中的 char
抛出:
BAD_OPERATION - 如果此 Any 对象包含 char 以外的值,或者尚未设置 value 字段

insert_char

public abstract void insert_char(char c)
                          throws DATA_CONVERSION
将给定 char 值插入此 Any 对象的 value 字段。

参数:
c - 将插入此 Any 对象中的 char
抛出:
DATA_CONVERSION - 如果存在数据转换错误

extract_wchar

public abstract char extract_wchar()
                            throws BAD_OPERATION
提取此 Any 对象 value 字段中的 char 值。

返回:
存储在此 Any 对象中的 char
抛出:
BAD_OPERATION - 如果此 Any 对象包含 char 以外的值,或者尚未设置 value 字段

insert_wchar

public abstract void insert_wchar(char c)
将给定 char 值插入此 Any 对象的 value 字段。

参数:
c - 将插入此 Any 对象中的 char

extract_octet

public abstract byte extract_octet()
                            throws BAD_OPERATION
提取此 Any 对象 value 字段中的 byte 值。

返回:
存储在此 Any 对象中的 byte
抛出:
BAD_OPERATION - 如果此 Any 对象包含 byte 以外的值,或者尚未设置 value 字段

insert_octet

public abstract void insert_octet(byte b)
将给定 byte 值插入此 Any 对象的 value 字段。

参数:
b - 将插入此 Any 对象中的 byte

extract_any

public abstract Any extract_any()
                         throws BAD_OPERATION
提取此 Any 对象 value 字段中的 Any 对象。

返回:
存储在此 Any 对象中的 Any 对象
抛出:
BAD_OPERATION - 如果此 Any 对象包含 Any 以外的对象,或者尚未设置 value 字段

insert_any

public abstract void insert_any(Any a)
将给定 Any 对象插入此 Any 对象的 value 字段。

参数:
a - 将插入此 Any 对象中的 Any 对象

extract_Object

public abstract Object extract_Object()
                               throws BAD_OPERATION
提取此 Any 对象 value 字段中的 org.omg.CORBA.Object

返回:
存储在此 Any 对象中的 org.omg.CORBA.Object
抛出:
BAD_OPERATION - 如果此 Any 对象包含 org.omg.CORBA.Object 以外的其他对象,或者尚未设置 value 字段

insert_Object

public abstract void insert_Object(Object o)
将给定 org.omg.CORBA.Object 对象插入此 Any 对象的 value 字段。

参数:
o - 将插入此 Any 对象中的 org.omg.CORBA.Object 对象

extract_Value

public abstract Serializable extract_Value()
                                    throws BAD_OPERATION
提取此 Any 对象 value 字段中的 java.io.Serializable 对象。

返回:
存储在此 Any 对象中的 java.io.Serializable 对象
抛出:
BAD_OPERATION - 如果此 Any 对象包含 java.io.Serializable 以外的对象,或者尚未设置 value 字段

insert_Value

public abstract void insert_Value(Serializable v)
将给定 java.io.Serializable 对象插入此 Any 对象的 value 字段。

参数:
v - 将插入此 Any 对象中的 java.io.Serializable 对象

insert_Value

public abstract void insert_Value(Serializable v,
                                  TypeCode t)
                           throws MARSHAL
将给定 java.io.Serializable 对象插入此 Any 对象的 value 字段。

参数:
v - 将插入此 Any 对象中的 java.io.Serializable 对象
t - 将插入此 Any 对象 type 字段中的 TypeCode 对象,它描述了将被插入的 java.io.Serializable 对象
抛出:
MARSHAL - 如果 ORB 在编组或解组参数时存在问题

insert_Object

public abstract void insert_Object(Object o,
                                   TypeCode t)
                            throws BAD_PARAM
将给定 org.omg.CORBA.Object 对象插入此 Any 对象的 value 字段。

参数:
o - 将插入此 Any 对象中的 org.omg.CORBA.Object 实例
t - 将插入此 Any 对象中的 TypeCode 对象,它描述了将被插入的 Object
抛出:
BAD_OPERATION - 如果此方法对于此 Any 对象无效
BAD_PARAM

extract_string

public abstract String extract_string()
                               throws BAD_OPERATION
提取此 Any 对象 value 字段中的 String 对象。

返回:
存储在此 Any 对象中的 String 对象
抛出:
BAD_OPERATION - 如果此 Any 对象包含 String 以外的对象,或者尚未设置 value 字段

insert_string

public abstract void insert_string(String s)
                            throws DATA_CONVERSION,
                                   MARSHAL
将给定 String 对象插入此 Any 对象的 value 字段。

参数:
s - 将插入此 Any 对象中的 String 对象
抛出:
DATA_CONVERSION - 如果存在数据转换错误
MARSHAL - 如果 ORB 在编组或解组参数时存在问题

extract_wstring

public abstract String extract_wstring()
                                throws BAD_OPERATION
提取此 Any 对象 value 字段中的 String 对象。

返回:
存储在此 Any 对象中的 String 对象
抛出:
BAD_OPERATION - 如果此 Any 对象包含 String 以外的对象,或者尚未设置 value 字段

insert_wstring

public abstract void insert_wstring(String s)
                             throws MARSHAL
将给定 String 对象插入此 Any 对象的 value 字段。

参数:
s - 将插入此 Any 对象中的 String 对象
抛出:
MARSHAL - 如果 ORB 在编组或解组参数存在问题

extract_TypeCode

public abstract TypeCode extract_TypeCode()
                                   throws BAD_OPERATION
提取此 Any 对象 value 字段中的 TypeCode 对象。

返回:
存储在此 Any 对象中的 TypeCode 对象
抛出:
BAD_OPERATION - 如果此 Any 对象包含 TypeCode 以外的对象,或者尚未设置 value 字段

insert_TypeCode

public abstract void insert_TypeCode(TypeCode t)
将给定 TypeCode 对象插入此 Any 对象的 value 字段。

参数:
t - 将插入此 Any 对象中的 TypeCode 对象

extract_Principal

@Deprecated
public Principal extract_Principal()
                            throws BAD_OPERATION
已过时。 由 CORBA 2.2 取代。

提取此 Any 对象 value 字段中的 Principal 对象。注意,Principal 类已过时。

返回:
存储在此 Any 对象中的 Principal 对象
抛出:
BAD_OPERATION - 如果此 Any 对象包含 Principal 以外的对象,或者尚未设置 value 字段
另请参见:
CORBA 包中有关未实现特性的注释

insert_Principal

@Deprecated
public void insert_Principal(Principal p)
已过时。 由 CORBA 2.2 取代。

将给定 Principal 对象插入此 Any 对象的 value 字段。注意,Principal 类已过时。

参数:
p - 将插入此 Any 对象中的 Principal 对象
另请参见:
CORBA 包中有关未实现特性的注释

extract_Streamable

public Streamable extract_Streamable()
                              throws BAD_INV_ORDER
从此 Any 对象的 value 字段提取 Streamable。此方法允许提取非基本 IDL 类型。

返回:
存储在 Any 对象中的 Streamable
抛出:
BAD_INV_ORDER - 如果调用者按错误的顺序调用了操作
另请参见:
CORBA 包中有关未实现特性的注释

insert_Streamable

public void insert_Streamable(Streamable s)
将给定 Streamable 对象插入此 Any 对象的 value 字段。此方法允许插入非基本 IDL 类型。

参数:
s - 将插入此 Any 对象的 Streamable 对象,它可以是非基本 IDL 类型
另请参见:
CORBA 包中有关未实现特性的注释

extract_fixed

public BigDecimal extract_fixed()
提取此 Any 对象 value 字段中的 java.math.BigDecimal 对象。

返回:
存储在此 Any 对象中的 java.math.BigDecimal 对象
抛出:
BAD_OPERATION - 如果此 Any 对象包含 java.math.BigDecimal 以外的对象,或者尚未设置 value 字段
另请参见:
CORBA 包中有关未实现特性的注释

insert_fixed

public void insert_fixed(BigDecimal value)
抛出 org.omg.CORBA.NO_IMPLEMENT 异常。

将给定 java.math.BigDecimal 对象插入此 Any 对象的 value 字段。

参数:
value - 将插入此 Any 对象中的 java.math.BigDecimal 对象
另请参见:
CORBA 包中有关未实现特性的注释

insert_fixed

public void insert_fixed(BigDecimal value,
                         TypeCode type)
                  throws BAD_INV_ORDER
抛出 org.omg.CORBA.NO_IMPLEMENT 异常。

将给定 java.math.BigDecimal 对象插入此 Any 对象的 value 字段。

参数:
value - 将插入此 Any 对象中的 java.math.BigDecimal 对象
type - 将插入此 Any 对象 type 字段中的 TypeCode 对象,它描述了将被插入的 java.math.BigDecimal 对象
抛出:
BAD_INV_ORDER - 如果不正确地调用此方法
另请参见:
CORBA 包中有关未实现特性的注释

JavaTM 2 Platform
Standard Ed. 6

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

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