java enum枚举类的使用

来源:互联网 发布:java多线程有什么用 编辑:程序博客网 时间:2024/06/05 15:46

例:enum Color { NO,OFF}

1.ordinal()方法: 返回枚举值在枚举类种的顺序

 Color.NO.ordinal();  //返回结果:0

2.compareTo()方法: Enum实现了java.lang.Comparable接口,因此可以比较象与指定对象的顺序。Enum中的compareTo返回的是两个枚举值的顺序之差

 Color.NO.compareTo(OFF);  //返回结果: -1

3. values()方法: 静态方法,返回一个包含全部枚举值的数组。

 Color[] colors=Color.values();
 for(Color c:colors){
         System.out.print(c+","); //返回结果:NO  OFF
 }


总结:

1.  enum<->int

enum -> int: int i enumType.value.ordinal();

int -> enum: enumType b= enumType.values()[i];

2.  enum<->String

enum -> String: enumType.name()

String -> enum: enumType.valueOf(name); 


实例:

public class StatusConstants {
public  enum Status{
A(1,"1号"),
B(2,"2好"),
C(3,"3号");
private int value;
private String name;
private Status(int value, String name) {
this.value = value;
this.name = name;
}


public int getValue() {
return value;
}

public void setValue(int value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static String getName(int value) {  
        for (Status c : Status.values()) {  
            if (c.getValue() == value) {  
                return c.name;  
            }  
        }  
        return null;  
    }
}
}



public class Test {
      public static void main(String[] args) {
System.out.println(StatusConstants.Status.getName(1));//输出:1号
for (StatusConstants.Status status : StatusConstants.Status.values()){
System.out.println(status.getValue());//输出1 2 3
System.out.println(status);//输出A B C
}
}
}

0 0
原创粉丝点击