Enum类中的常用方法
Enum类的全类名 : java.lang.Enum
首先我们要知道enum关键字是定义枚举类的, 而使用enum关键字定义的枚举类都直接继承与java.lang.Enum类
这里我们就Enum类中的最常用的三个方法来进行一个说明
-
这里我们要对Enum类中的方法进行举例分析,这里我们先给出一个相关的使用enum关键字定义的枚举类 package 枚举类.枚举类的定义.enum关键字定义枚举类;
public enum Season1 {
SPRING("春天","春暖花开"),
SUMMER("夏天","夏日炎炎"),
AUTUMN("秋天","秋高气爽"),
WINTER("冬天","冰天雪地");
private final String seasonName;
private final String seasonDesc;
private Season1(String seasonName , String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
public String getSeasonName(){
return this.seasonName;
}
public String getSeasonDesc(){
return this.seasonDesc;
}
@Override
public String toString() {
return "Season1{" +
"seasonName='" + seasonName + '\'' +
", seasonDesc='" + seasonDesc + '\'' +
'}';
}
}
下面就是我们对这三个方法的分析
- toString()
- 返回调用这个方法的枚举类对象的对象名
- 所以我们使用enum关键字定义的枚举类没有特殊要求其实可以不用重写toString()方法
- 这个方法是一个非静态方法
eg:
Season1 summer = Season1.SUMMER;
System.out.println(summer.toString());
- values()
- 通过枚举类直接调用此方法返回枚举类的对象数组, 也就是将枚举类的对象以一个一个数组元素合并成一个数组返回
- 这个方法是一个静态方法
- 该方法可以很方便地遍历所有枚举值
eg:
Season1 [] values = Season1.values();
for(int i = 0; i < values.length ; i++){
System.out.println(values[i]);
}
eg:
- 在学习多线程中我们曾经学到Thread类中有一个内部类State,State类就是通过enum关键字定义的枚举类,在State类中定义了线程运行的几种状态
Thread.State [] values = Thread.State.values();
for(int i = 0; i < values.length ; i++){
System.out.println(values[i])
}
- valueof(String objName)
- 使用枚举类调用此方法.可以把一个字符串转换为对应的同名的枚举类对象
- 这个方法是一个静态方法
注意: 要求字符串必须是调用此方法的枚举类中的对象名,如果不是则会抛出一个运行时异常 : IllegalArgumentException(非法的参数异常)
eg:
Season1 winter = Season1.valueof("WINTER");
System.out.println(winter);
|