|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjavax.print.attribute.EnumSyntax
public abstract class EnumSyntax
類別 EnumSyntax 是一個抽象的基礎類別,它提供所有“型別安全列舉”物件的公共實作。擴展類別 EnumSyntax 的列舉類別提供一組列舉值(物件),它是該列舉類別的單一實例;例如:
public class Bach extends EnumSyntax {
public static final Bach JOHANN_SEBASTIAN = new Bach(0);
public static final Bach WILHELM_FRIEDEMANN = new Bach(1);
public static final Bach CARL_PHILIP_EMMANUEL = new Bach(2);
public static final Bach JOHANN_CHRISTIAN = new Bach(3);
public static final Bach P_D_Q = new Bach(4);
private static final String[] stringTable = {
"Johann Sebastian Bach",
"Wilhelm Friedemann Bach",
"Carl Philip Emmanuel Bach",
"Johann Christian Bach",
"P.D.Q. Bach"
};
protected String[] getStringTable() {
return stringTable;
}
private static final Bach[] enumValueTable = {
JOHANN_SEBASTIAN,
WILHELM_FRIEDEMANN,
CARL_PHILIP_EMMANUEL,
JOHANN_CHRISTIAN,
P_D_Q
};
protected EnumSyntax[] getEnumValueTable() {
return enumValueTable;
}
}
然後,可以寫入使用 == 和 != 運算符的程式碼,以測試列舉值;例如:
Bach theComposer;
. . .
if (theComposer == Bach.JOHANN_SEBASTIAN) {
System.out.println ("The greatest composer of all time!");
}
列舉類別的 equals() 方法僅為相同的物件 (==) 執行測試。
通過調用 可以將列舉值轉換為字元串。從列舉類別提供的表獲取字元串。
toString()
實際上,列舉值就是一個整數,列舉類別中每個列舉值都有一個不同的整數。通過調用 可以獲取列舉值的整數值。列舉值的整數值是在建構時建立的(請參閱 getValue())。由於建構子是受保護的,唯一可能的列舉值是列舉類別中宣告的單一物件;在運行時無法創建其他列舉值。
EnumSyntax(int)
可以定義列舉類別的子類別,該列舉類別會使用其他列舉值對它進行擴展。子類別的列舉值的整數值不必與父級類別的列舉值的整數值不同;==、!=、equals() 和 toString() 方法仍將正常運行,即使子類別使用一些與父級類別相同的整數值。但是,使用列舉類別和子類別的應用程序在父級類別和子類別中可能需要具有不同的整數值。
| 建構子摘要 | |
|---|---|
protected |
EnumSyntax(int value)
使用給定的整數值建構一個新列舉值。 |
| 方法摘要 | |
|---|---|
Object |
clone()
返回此列舉值的一個副本,該副本保留了列舉值的語義,它是與此列舉值相同的物件。 |
protected EnumSyntax[] |
getEnumValueTable()
返回此列舉值的列舉類別的列舉值表。 |
protected int |
getOffset()
返回此列舉值的列舉類別使用的最小整數值。 |
protected String[] |
getStringTable()
返回此列舉值的列舉類別的字元串表。 |
int |
getValue()
返回此列舉值的整數值。 |
int |
hashCode()
返回此列舉值的雜湊碼值。 |
protected Object |
readResolve()
在物件輸入過程中,將此反序列化的列舉實例轉換為列舉屬性類別中定義的適當列舉值。 |
String |
toString()
返回對應於此列舉值的字元串值。 |
| 從類別 java.lang.Object 繼承的方法 |
|---|
equals, finalize, getClass, notify, notifyAll, wait, wait, wait |
| 建構子詳細資訊 |
|---|
protected EnumSyntax(int value)
value - 整數值。| 方法詳細資訊 |
|---|
public int getValue()
public Object clone()
Object 中的 cloneCloneablepublic int hashCode()
Object 中的 hashCodeObject.equals(java.lang.Object),
Hashtablepublic String toString()
Object 中的 toString
protected Object readResolve()
throws ObjectStreamException
getEnumValueTable() 返回的列舉值表中的索引 i-L 處,其中 i 是此列舉值的整數值,L 是 getOffset() 返回的值。
ObjectStreamException - 如果無法對串流反序列化
InvalidObjectException - 如果列舉值表為 null,此列舉值的整數值與列舉值表中的元素不對應,或列舉值表中的對應元素為 null,則拋出該異常。(註:InvalidObjectException 是 ObjectStreamException 的一個子類別,ObjectStreamException 由 readResolve() 宣告拋出。protected String[] getStringTable()
getOffset() 返回的值,N 是字元串表的長度。字元串表中索引 i-L 處的元素是 toString() 針對其整數值是 i 的列舉值所返回的值。如果任何列舉值都不使用上面範圍中的整數,則對應的表元素保持為 null。
預設實作返回 null。如果列舉類別(類別 EnumSyntax 的子類別)不覆寫此方法,以返回非 null 字元串表,並且子類別不覆寫 方法,則基礎類別 toString() 方法將僅返回此列舉值的整數值的字元串表示形式。
toString()
protected EnumSyntax[] getEnumValueTable()
getOffset() 返回的值,N 是列舉值表的長度。列舉值表中索引 i-L 處的元素是其整數值是 i 的列舉值物件;在列舉實例的反序列化過程中,readResolve() 方法需要此元素來保持單一語義。如果任何列舉值都不使用上面範圍中的整數,則對應的表元素保持為 null。
預設實作返回 null。如果列舉類別(類別 EnumSyntax 的子類別)不覆寫此方法,以返回非 null 列舉值表,並且子類別不覆寫 方法,則每當從物件輸入串流反序列化列舉實例時,基礎類別 readResolve() 方法將拋出一個異常。
readResolve()
protected int getOffset()
預設實作返回 0。如果列舉類別(類別 EnumSyntax 的子類別)使用以非 0 開始的整數值,則覆寫子類別中的此方法。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。