• Java enum应用小结


    用法一:常量

    在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

    public enum Color {  
      RED, GREEN, BLANK, YELLOW  
    }  
    用法二:switch

    JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

    public enum Code {
    	SUCCESS(10000,"操作成功"),FAIL(10001,"操作失败");
    	
    	private int code;
    	private String msg;
    	
    	private Code(int code, String msg) {
    		this.code = code;
    		this.msg = msg;
    	}
    	public int getCode() {
    		return code;
    	}
    	public void setCode(int code) {
    		this.code = code;
    	}
    	public String getMsg() {
    		return msg;
    	}
    	public void setMsg(String msg) {
    		this.msg = msg;
    	}
    	
    	/**
    	 * 根据value获取Code
    	 * @param value
    	 * @return
    	 */
    	public static Code getByValue(int value){
            for (Code code : values()) {  
                if (code.getCode() == value) {  
                    return code;
                }  
            }
            return null;
    	}
    
    }
    public class CodeTest {
    	
    	public static void main(String[] args) {
    		int code = Code.SUCCESS.getCode();
    		switch (Code.getByValue(code)) {
    		case SUCCESS:
    			System.out.println("ok...");
    			break;
    		case FAIL:
    			System.out.println("error...");
    			break;
    		default:
    			System.out.println("default...");
    			break;
    		}
    		
    	}
    }
    用法三:实现接口

    所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

    public interface Behaviour {  
        void print();  
        String getInfo();  
    }  
    public enum Color implements Behaviour{  
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
        // 成员变量  
        private String name;  
        private int index;  
        // 构造方法  
        private Color(String name, int index) {  
            this.name = name;  
            this.index = index;  
        }  
    //接口方法  
        @Override  
        public String getInfo() {  
            return this.name;  
        }  
        //接口方法  
        @Override  
        public void print() {  
            System.out.println(this.index+":"+this.name);  
        }  
    }
    用法四:使用接口组织枚举
    public interface Food {  
        enum Coffee implements Food{  
            BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
        }  
        enum Dessert implements Food{  
            FRUIT, CAKE, GELATO  
        }  
    } 
    用法五:关于枚举集合的使用
    java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

    参考博文:http://blog.csdn.net/qq_27093465/article/details/52180865

  • 相关阅读:
    弹性网卡支持私网多IP
    微服务浪潮中,程序猿如何让自己 Be Cloud Native
    Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
    如何更高效的管理原生微服务应用
    如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes
    PHP flock文件锁
    MySQL锁(MyISAM和InnoDB)
    汽车操作系统革命:封闭还是开源?
    采集百度top500歌曲,python2.7.2
    关于revision 的cover letter
  • 原文地址:https://www.cnblogs.com/archermeng/p/8587513.html
Copyright © 2020-2023  润新知