所有类


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  InputStreamcreate_input_stream()
          创建一个输入流,可以从中解组此 Any 对象的值。
abstract  OutputStreamcreate_output_stream()
          创建一个输出流,可以将此 Any 对象的值编组到其中。
abstract  booleanequal(Any a)
          检查此 Any 对象与给定 Any 对象是否相等。
abstract  Anyextract_any()
          提取此 Any 对象 value 字段中的 Any 对象。
abstract  booleanextract_boolean()
          提取此 Any 对象 value 字段中的 boolean 值。
abstract  charextract_char()
          提取此 Any 对象 value 字段中的 char 值。
abstract  doubleextract_double()
          提取此 Any 对象 value 字段中的 double 值。
 BigDecimalextract_fixed()
          提取此 Any 对象 value 字段中的 java.math.BigDecimal 对象。
abstract  floatextract_float()
          提取此 Any 对象 value 字段中的 float 值。
abstract  intextract_long()
          提取此 Any 对象 value 字段中的 int 值。
abstract  longextract_longlong()
          提取此 Any 对象 value 字段中的 long 值。
abstract  Objectextract_Object()
          提取此 Any 对象 value 字段中的 org.omg.CORBA.Object
abstract  byteextract_octet()
          提取此 Any 对象 value 字段中的 byte 值。
 Principalextract_Principal()
          已过时。 由 CORBA 2.2 取代。
abstract  shortextract_short()
          提取此 Any 对象 value 字段中的 short 值。
 Streamableextract_Streamable()
          从此 Any 对象的 value 字段提取 Streamable
abstract  Stringextract_string()
          提取此 Any 对象 value 字段中的 String 对象。
abstract  TypeCodeextract_TypeCode()
          提取此 Any 对象 value 字段中的 TypeCode 对象。
abstract  intextract_ulong()
          提取此 Any 对象 value 字段中的 int 值。
abstract  longextract_ulonglong()
          提取此 Any 对象 value 字段中的 long 值。
abstract  shortextract_ushort()
          提取此 Any 对象 value 字段中的 short 值。
abstract  Serializableextract_Value()
          提取此 Any 对象 value 字段中的 java.io.Serializable 对象。
abstract  charextract_wchar()
          提取此 Any 对象 value 字段中的 char 值。
abstract  Stringextract_wstring()
          提取此 Any 对象 value 字段中的 String 对象。
abstract  voidinsert_any(Any a)
          将给定 Any 对象插入此 Any 对象的 value 字段。
abstract  voidinsert_boolean(boolean b)
          将给定 boolean 值插入此 Any 对象的 value 字段。
abstract  voidinsert_char(char c)
          将给定 char 值插入此 Any 对象的 value 字段。
abstract  voidinsert_double(double d)
          将给定 double 值插入此 Any 对象的 value 字段。
 voidinsert_fixed(BigDecimal value)
          抛出 org.omg.CORBA.NO_IMPLEMENT 异常。
 voidinsert_fixed(BigDecimal value, TypeCode type)
          抛出 org.omg.CORBA.NO_IMPLEMENT 异常。
abstract  voidinsert_float(float f)
          将给定 float 值插入此 Any 对象的 value 字段。
abstract  voidinsert_long(int l)
          将给定 int 值插入此 Any 对象的 value 字段。
abstract  voidinsert_longlong(long l)
          将给定 long 值插入此 Any 对象的 value 字段。
abstract  voidinsert_Object(Object o)
          将给定 org.omg.CORBA.Object 对象插入此 Any 对象的 value 字段。
abstract  voidinsert_Object(Object o, TypeCode t)
          将给定 org.omg.CORBA.Object 对象插入此 Any 对象的 value 字段。
abstract  voidinsert_octet(byte b)
          将给定 byte 值插入此 Any 对象的 value 字段。
 voidinsert_Principal(Principal p)
          已过时。 由 CORBA 2.2 取代。
abstract  voidinsert_short(short s)
          将给定 short 值插入此 Any 对象的 value 字段。
 voidinsert_Streamable(Streamable s)
          将给定 Streamable 对象插入此 Any 对象的 value 字段。
abstract  voidinsert_string(String s)
          将给定 String 对象插入此 Any 对象的 value 字段。
abstract  voidinsert_TypeCode(TypeCode t)
          将给定 TypeCode 对象插入此 Any 对象的 value 字段。
abstract  voidinsert_ulong(int l)
          将给定 int 值插入此 Any 对象的 value 字段。
abstract  voidinsert_ulonglong(long l)
          将给定 long 值插入此 Any 对象的 value 字段。
abstract  voidinsert_ushort(short s)
          将给定 short 值插入此 Any 对象的 value 字段。
abstract  voidinsert_Value(Serializable v)
          将给定 java.io.Serializable 对象插入此 Any 对象的 value 字段。
abstract  voidinsert_Value(Serializable v, TypeCode t)
          将给定 java.io.Serializable 对象插入此 Any 对象的 value 字段。
abstract  voidinsert_wchar(char c)
          将给定 char 值插入此 Any 对象的 value 字段。
abstract  voidinsert_wstring(String s)
          将给定 String 对象插入此 Any 对象的 value 字段。
abstract  voidread_value(InputStream is, TypeCode t)
          使用给定 typecode 读出(解组)给定输入流中某一 Any 对象的值。
abstract  TypeCodetype()
          返回此 Any 对象中所包含元素的类型信息。
abstract  voidtype(TypeCode t)
          将此 Any 对象的 type 字段设置为给定的 TypeCode 对象,并清除其值。
abstract  voidwrite_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