|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.print.attribute
类 EnumSyntax
java.lang.Object javax.print.attribute.EnumSyntax
- 所有已实现的接口:
- Serializable, Cloneable
- 直接已知子类:
- Chromaticity, ColorSupported, Compression, Fidelity, Finishings, JobSheets, JobState, JobStateReason, Media, MultipleDocumentHandling, OrientationRequested, PDLOverrideSupported, PresentationDirection, PrinterIsAcceptingJobs, PrinterState, PrinterStateReason, PrintQuality, ReferenceUriSchemesSupported, Severity, SheetCollate, Sides
-
public abstract class EnumSyntax
- extends Object
- implements Serializable, Cloneable
类 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 |
构造方法详细信息 |
---|
EnumSyntax
protected EnumSyntax(int value)
-
使用给定的整数值构造一个新枚举值。
- 参数:
-
value
- 整数值。
方法详细信息 |
---|
getValue
public int getValue()
- 返回此枚举值的整数值。
-
-
- 返回:
- 值
clone
public Object clone()
hashCode
public int hashCode()
- 返回此枚举值的哈希码值。哈希码正好是此枚举值的整数值。
-
- 返回:
- 此对象的一个哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,Hashtable
toString
public String toString()
readResolve
protected Object readResolve() throws ObjectStreamException
- 在对象输入过程中,将此反序列化的枚举实例转换为枚举属性类中定义的适当枚举值。
-
-
- 返回:
-
单个枚举值,它存储在
返回的枚举值表中的索引 i-L 处,其中 i 是此枚举值的整数值,L 是getEnumValueTable()
返回的值。getOffset()
- 抛出:
-
ObjectStreamException
- 如果无法对流反序列化 -
InvalidObjectException
- 如果枚举值表为 null,此枚举值的整数值与枚举值表中的元素不对应,或枚举值表中的对应元素为 null,则抛出该异常。(注:InvalidObjectException
是ObjectStreamException
的一个子类,ObjectStreamException
由readResolve()
声明抛出。
getStringTable
protected String[] getStringTable()
-
返回此枚举值的枚举类的字符串表。假设枚举类的整数值的范围是 L..L+N-1,其中 L 是
返回的值,N 是字符串表的长度。字符串表中索引 i-L 处的元素是getOffset()
针对其整数值是 i 的枚举值所返回的值。如果任何枚举值都不使用上面范围中的整数,则对应的表元素保持为 null。toString()
默认实现返回 null。如果枚举类(类 EnumSyntax 的子类)不重写此方法,以返回非 null 字符串表,并且子类不重写
方法,则基类toString()
方法将仅返回此枚举值的整数值的字符串表示形式。toString()
-
-
- 返回:
- 字符串表
getEnumValueTable
protected EnumSyntax[] getEnumValueTable()
-
返回此枚举值的枚举类的枚举值表。假设枚举类的整数值的范围是 L..L+N-1,其中 L 是
返回的值,N 是枚举值表的长度。枚举值表中索引 i-L 处的元素是其整数值是 i 的枚举值对象;在枚举实例的反序列化过程中,getOffset()
方法需要此元素来保持单一语义。如果任何枚举值都不使用上面范围中的整数,则对应的表元素保持为 null。readResolve()
默认实现返回 null。如果枚举类(类 EnumSyntax 的子类)不重写此方法,以返回非 null 枚举值表,并且子类不重写
方法,则每当从对象输入流反序列化枚举实例时,基类readResolve()
方法将抛出一个异常。readResolve()
-
-
- 返回:
- 值表