【IT168 技术文档】Level是一个简单的枚举示例:A/B/C/D代表四个等级
package java5study; public enum Level { A, B, C, D; public void showAll() { Level[] lv = Level.values(); // 这是Java5中新增的for语句,用于数组类型的for循环 for (Level l : lv) { System.out.println("value:" + l); System.out.println("ordinal:" + l.ordinal()); } } }
其它类中,可以使用Level枚举类型:
package java5study; /** * 该类中使用了Level枚举类型 * * @author pengch * */ public class UseLevel { private String name; private Level level; public Level getLevel() { return level; } public void setLevel(Level level) { this.level = level; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { StringBuffer sb = new StringBuffer(); sb.append(this.name); sb.append(" 的Level是 "); sb.append(this.level); return sb.toString(); } public static void main(String[] args) { UseLevel ul = new UseLevel(); ul.setLevel(Level.A); ul.setName("一"); System.out.println(ul.toString()); // 枚举类型可以比较,大小关系是以枚举类型中原始排列各个值元素的顺序为依据的 // 在Level中,A if (Level.A.compareTo(Level.B) > 0) { System.out.println("A大于B"); } else if (Level.A.compareTo(Level.B) == 0) { System.out.println("A等于B"); } else if (Level.A.compareTo(Level.B) < 0) { System.out.println("A小于B"); } // 枚举值的列举 ul.getLevel().showAll(); } }
运行结果:
C:\java>java UseLevel
一 的Level是 A
A小于B
value:A
ordinal:0
value:B
ordinal:1
value:C
ordinal:2
value:D
ordinal:3
Java5中提供了EnumMap
package java5study; import java.util.EnumMap; /** * * 演示Java5中EnumMap的使用 * * * @author pengch * */ public class LevelMap { public static void main(String[] args) { EnumMap levelMap = new EnumMap( Level.class); levelMap.put(Level.A, "A级"); levelMap.put(Level.B, "B级"); levelMap.put(Level.C, "C级"); levelMap.put(Level.D, "D级"); for (Level lv : Level.values()) { System.out.println(lv + ":" + levelMap.get(lv)); } } }
运行结果:
C:\java>java LevelMap
A:A级
B:B级
C:C级
D:D级