TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
最近用到枚举,由于枚举变量比较多且存在一定的分组分类的关系,所以想能比较清晰的维护这些变量。今晚有空,简单研究了一下,分享出来,供大家讨论。 可供考虑的分类方式- /**
- * 枚举接口
- *
- * @author lihzh(苦逼coder)
- * @data 2012-2-21 下午8:51:39
- */
- public interface EnumInter {
-
- public enum EnumB implements EnumInter{
- B1, B2, B3;
- public enum EnumSubB implements EnumInter{
- C1, C2, C3
- }
- }
- }
复制代码 调用方式和一些其他测试:
- import java.util.*;
- /**
- * 测试练习枚举用法
- *
- * @author lihzh(苦逼coder)
- * @data 2012-2-21 下午8:49:41
- */
- public class EnumMain {
-
- /**
- * @param args
- * @author lihzh
- * @data 2012-2-21 下午8:49:41
- */
- public static void main(String[] args) {
- // 遍历枚举
- for (EnumDemo e : EnumDemo.values()) {
- System.out.println("EnumDemo values: " + e.name());
- }
- // 枚举集合,简介
- EnumMap< EnumDemo, String> enumMap = new EnumMap< EnumDemo, String>(EnumDemo.class);
- enumMap.put(EnumDemo.A, "AAA");
- // 定义函数
- System.out.println(EnumDemo.A.getValue());
- System.out.println(EnumDemo.E.getValue());
- // 使用接口分组枚举
- EnumInter eInter = EnumInter.EnumB.B2; //
- EnumInter eInterB = EnumInter.EnumB.EnumSubB.C1;
- printValue(eInter);
- printValue(eInterB);
- }
-
- private static void printValue(EnumInter eInter) {
- System.out.println(eInter.toString());
- }
-
- public enum EnumDemo implements EnumInter {
- A, B, C, D, E;
- public String getValue() {
- return "Value is: " + this.name();
- }
- }
-
- }
复制代码 主要是使用接口分组枚举的调用方式。可体现出分组的效果。方法接口参数,统一接受接口类型即可。
运行结果:
C:java>java EnumMain
EnumDemo values: A
EnumDemo values: B
EnumDemo values: C
EnumDemo values: D
EnumDemo values: E
Value is: A
Value is: E
B2
C1
源码下载:http://file.javaxxz.com/2014/10/28/235552203.zip |
|