1.自己写的enum都继承于Enum,所以就不能继承别的类,只能实现接口。
2.我们可以使用.values()方法遍历enum,但是一旦我们向上转化,把自己的enum赋值给Enum,就不可以使用values()。因为Enum方法中没有values()方法,子类中的方法是编译器插入到子类enum中的static方法,我们可以使用类中的getEnumConstants()
代码如下
package EnumPackage;
enum Search{HITHER,YON}
public class UpcastEnum {
public static void main(String[] args){
Enum e=Search.HITHER;
for(Enum en:e.getClass().getEnumConstants()){
System.out.println(en);
}
}
}
结果:
HITHER
YON
3.注意由于getEnumConstants()方法是Class中的,所有也可以在非Enum类中调用,只不过一旦使用值就会报空指针
代码如下:
package EnumPackage;
public class NonNum {
public static void main(String[] args){
Class<Integer> intClass=Integer.class;
try{
for(Object en:intClass.getEnumConstants()){
System.out.println(en);
}
}catch(Exception e){
System.out.println(e);
}
}
}
结果:
java.lang.NullPointerException