• 枚举


    Enum

    • 定义:

    ​ enum是1.5出现的一种类的表现规范,本质上还是一种类,编译器会生成一个类继承自java.lang.Enum

    • 特点:

      1. 因为它的属性是final的,因此一般是大写,由于这种特性,它可以用来处理一些固定的数据
      2. 也可以用来做单例
      3. 创建的资源消耗小于类
      4. 可用于switch(enum)
      5. 它的父类public abstract class Enum<E extends Enum> implements Comparable,
        Serializable。因此它也有int compareTo(T)方法,放在有序集合中是自然排序,等还有其他父类的特性
      6. 不能继承其他的enum,因为编译器会把enum加上final,所以不能继承,也不能继承其他类,因为本身就继承了java.lang.Enum
      7. 如果你要定义自己的方法需要先定义enum的实例,最后加上‘;’,然后才可以定义方法
      8. 可以实现多个接口,不能继承
      9. 实现接口不能写不能写@override
    • api:
      enums values() 返回enum数组,是编译器插入到enum中的,所以当你向上转型时是不能用这个方法的,要用(是Class上的方法)enum.getClass().getEnumConstants()

      enum Search { HITHER, YON }
      
      public class UpcastEnum {
        public static void main(String[] args) {
          Search[] vals = Search.values();
          Enum e = Search.HITHER; // Upcast
          // e.values(); // No values() in Enum
          for(Enum en : e.getClass().getEnumConstants()) {
            System.out.println(en);
          }
        }
      } /* Output:
      HITHER
      YON
      *///:~
      

      ​ int ordinal() 返回它的enum排序index

    switch

    public enum  Enum01 {
        LEFT, RIGHT
    
    }
    
    class EnumTest03 {
        Enum01 enum01;
    
        public EnumTest03(Enum01 enum01) {
            this.enum01 = enum01;
        }
    
        public static void main(String[] args) {
            EnumTest03 enumTest03L = new EnumTest03(Enum01.LEFT);
            EnumTest03 enumTest03R = new EnumTest03(Enum01.RIGHT);
            enumTest03L.description();
            enumTest03R.description();
        }
    
        void description() {
            switch (enum01) {
                case LEFT:
                    System.out.println(enum01);
                    break;
                case RIGHT:
                    System.out.println(enum01);
                    break;
                default:
                    System.out.println("没有这个值");
                    break;
            }
        }
    }
    
    
    
    

    enum例子

    public enum ResponseEnum implements Cloneable, Serializable {
        SUCCESS(200, "成功"),
        FAIL(500, "失败");
    
        private final String str;
        private final int status;
    
        private ResponseEnum(int status, String str) {
            this.status = status;
            this.str = str;
        }
    
        public String getStr() {
            return str;
        }
    
        public int getStatus() {
            return status;
        }
    }
    
    class Test {
        public static void main(String[] args){
            System.out.println(ResponseEnum.SUCCESS);
            System.out.println(ResponseEnum.FAIL);
        }
    }
    /**out:
    SUCCESS
    FAIL
    */
    
  • 相关阅读:
    String源码分析
    solr IK分词器
    solr安装
    hadoop HA集群搭建(亲测)
    dubbo-admin安装
    关于idea中使用lamb表达式报错:ambda expressions are not supported at this language level
    web项目数据存入mysql数据库中文乱码问题
    dom4j解析xml
    js监听键盘提交表单
    Location replace() 方法
  • 原文地址:https://www.cnblogs.com/zpyu521/p/11747949.html
Copyright © 2020-2023  润新知