所有类


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

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部