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

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only