枚举、注解与反射
枚举
枚举用于定义有限数量的一组同类常量,例如:
一年四季:春、夏、秋、冬
发生错误的级别:低、中、高、紧急
枚举是可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
定义格式:
权限修饰符 enum 枚举名称{
实例1,实例2,实例3;
}
示例:
//错误级别
public enum Level{
LOW(10),MEDIUM(30),HIGH(60),URGENT(100);
private int levelvalue;
private Level(int levelvalue){
this.levelvalue=levelvalue;
}
public int getLevelvalue(){
return levelvalue;
}
}
Enum抽象类常见方法:
Enum是所有Java语言枚举类型的公共基本类(注意Enum是抽象类),以下是它的常见方法:
返回类型 | 方法名称 | 方法说明 |
---|---|---|
int | compareTo(E o) | 比较此枚举与指定对象的顺序 |
boolean | equals(Object other) | 当指定对象等于此枚举常量时,返回true |
Class<?> | getDeclaringClass() | 返回与此枚举常量的枚举类型相对应的Class对象 |
String | name() | 返回此枚举常量的名称,在其枚举声明中对其进行声明 |
int | ordinal() | 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零) |
String | toString() | 返回枚举常量的名称,它包含在声明中 |
static<T extends Enum>T | static valueOf(ClassenumType,String name) | 返回带指定名称的指定枚举类型的枚举常量 |
上述的方法中仅有toString(),可以让我们重写。
上述方法使用示例:
// 枚举类Level
public enum Level{
LOW(10),MEDIUM(30),HIGH(60);
private int levelvalue;
private Level(int levelvalue){
this.levelvalue=levelvalue;
}
public int getLevelvalue(){
return levelvalue;
}
}
// 枚举类Level2
public enum Level2 {
LOW,MEDIUM,HIGH;
}
//各方法使用示例
public class Demo1 {
public static void main(String[] args) {
System.out.println("获取Level中LOW的数值:"+Level.LOW.getLevelvalue());
System.out.println("\nLOW与HIGH比较:"+Level2.LOW.compareTo