public abstract class EnumSyntax extends Object implements Serializable, Cloneable
公共课巴赫延伸enumsyntax {public static final巴赫johann_sebastian =新巴赫(0);public static final巴赫wilhelm_friedemann =新巴赫(1);public static final巴赫carl_philip_emmanuel =新巴赫(2);public static final巴赫johann_christian =新巴赫(3);public static final巴赫p_d_q =新巴赫(4);私有静态final String []字符串表= {“约翰·塞巴斯蒂安·巴赫”,“威廉·弗里德曼·巴赫”,“卡尔-艾曼纽-巴赫-菲利普”,“Johann Christian Bach”,“P.D.Q. Bach”};字符串[] getstringtable() {返回的字符串表;}私有静态最终巴赫[ ] enumvaluetable = {johann_sebastian,wilhelm_friedemann,carl_philip_emmanuel,johann_christian,p_d_q};保护enumsyntax [ ] getenumvaluetable() {返回enumvaluetable;}}然后你可以编写使用
==
和
!=
运营商测试枚举值的代码;例如:
巴赫作曲家;。..如果(作曲家= =巴赫。johann_sebastian){System.out.println(“最伟大的作曲家的所有时间!”);}为枚举类的
equals()
方法也相同的对象一个测试(
==
)。
你可以将一个枚举值的字符串调用toString()
。字符串是由枚举类提供了一台。
在引擎盖下,枚举值只是一个整数,枚举类中的每个枚举值的一个不同的整数。你可以通过调用getValue()
得到一个枚举值的整型值。一个枚举值的整型值是建立在施工(见EnumSyntax(int)
)。由于构造函数是受保护的,唯一可能的枚举值是在枚举类中声明的单例对象,无法在运行时创建额外的枚举值。
您可以定义一个枚举类的子类,它将其扩展到附加的枚举值。子类的枚举值的整数的值不一定要从超类中的枚举值的整数值;的==
,!=
,equals()
,和toString()
方法仍然即使子类使用一些相同的整数的值作为父类的正常工作。然而,该枚举类和子类使用的应用程序可能需要在父类和子类有不同的整数值。
Modifier | Constructor and Description |
---|---|
protected |
EnumSyntax(int value)
用给定的整数值构造一个新的枚举值。
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
返回此枚举值的一个克隆,该值保存枚举值的语义与此枚举值的同一个对象。
|
protected EnumSyntax[] |
getEnumValueTable()
返回此枚举值的枚举类的枚举值表。
|
protected int |
getOffset()
返回此枚举值枚举类使用的最小整数值。
|
protected String[] |
getStringTable()
返回此枚举值的枚举类的字符串表。
|
int |
getValue()
返回此枚举值的整数值。
|
int |
hashCode()
返回此枚举值的哈希代码值。
|
protected Object |
readResolve()
在对象的输入,将反序列化枚举实例的枚举属性类中定义适当的枚举值。
|
String |
toString()
返回对应于此枚举值的字符串值。
|
public int getValue()
public Object clone()
public int hashCode()
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
protected Object readResolve() throws ObjectStreamException
getEnumValueTable()
返回存储在索引我L在枚举值表的计数单值,在我这个枚举值的整型值和L值返回
getOffset()
。
ObjectStreamException
如果流不可deserialised
InvalidObjectException
如果枚举值表为空抛出,该枚举值的整型值不符合在枚举值表的一个元素,或在枚举值表中的对应元素为null。(注:
InvalidObjectException
是一类
ObjectStreamException
,这
readResolve()
宣布投入。)
protected String[] getStringTable()
getOffset()
n是字符串表的长度。在字符串表中元素的索引我- L的返回值
toString()
为枚举值的整数我。如果在上述范围内的整数不使用任何枚举值,则留下相应的表元素为空。
默认实现返回空值。如果枚举类(类enumsyntax子类)不重写此方法以返回一个非空的字符串表,和子类并重写toString()
方法的基类toString()
方法将返回一个字符串表示这只是枚举值的整型值。
protected EnumSyntax[] getEnumValueTable()
getOffset()
n长度的枚举值表。元素在枚举值表索引我L是枚举值对象的整数我;的
readResolve()
方法需要这个枚举实例在反序列化期间保持单身的语义。如果在上述范围内的整数不使用任何枚举值,则留下相应的表元素为空。
默认实现返回空值。如果枚举类(类enumsyntax子类)不重写此方法以返回一个非空的枚举值表和子类不重写基类方法readResolve()
,readResolve()
方法将抛出一个异常时,枚举实例对象反序列化从输入流。
protected int getOffset()
默认实现返回0。如果枚举类(类enumsyntax子类)使用整数的值从0以外,在子类中重写该方法。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.