zoukankan      html  css  js  c++  java
  • 枚举

    当我们需要重复使用一个常量的时候,我们可以通过static final定义,也可以使用枚举进行定义。

    1:简单使用

      枚举类:Info

    package com.zhao.enums;
    
    public enum Info {
        SUCCESS,ERROR,FAILURE;
    }

    测试类

    package com.zhao.enums;
    
    import org.junit.Test;
    
    public class InfoTest {
        private static final String  SUCCESS="SUCCESS";
        @Test
        public void test() {
            System.out.println(Info.SUCCESS);
            System.out.println(SUCCESS);
        }
    }

    在测试类中,我们用到了枚举和普通的定义常量,结果是一样的 都是输出SUCCESS。

    2:带参数

      在我们用枚举的时候 ,希望枚举可以保存更多的信息,比如说 状态码+状态码说明。 就像map集合一样,有两个值。

    package com.zhao.enums;
    
    public enum Info {
        SUCCESS(1, "SUCCESS"), ERROR(2, "ERROR"), FAILURE(3, "FAILURE");
        private int state;
        private String stateInfo;
    
        private Info(int state, String stateInfo) {
            this.state = state;
            this.stateInfo = stateInfo;
        }
    
        public int getState() {
            return state;
        }
    
        public void setState(int state) {
            this.state = state;
        }
    
        public String getStateInfo() {
            return stateInfo;
        }
    
        public void setStateInfo(String stateInfo) {
            this.stateInfo = stateInfo;
        }
    
    }

    枚举类需要带有参数的构造函数,这样才能完成SUCCESS里面的参数的赋值,这个过程类似于单元测试中的参数化测试。

    package com.zhao.enums;
    
    import org.junit.Test;
    
    public class InfoTest {
        @Test
        public void test() {
            System.out.println(Info.SUCCESS.getState());
            System.out.println(Info.SUCCESS.getStateInfo());
        }
    }

      

    或者可以这样写

    package com.zhao.enums;
    
    import org.junit.Test;
    
    public class InfoTest {
        @Test
        public void test() {
            Info info=Info.SUCCESS;
            System.out.println(info.getState()+" "+info.getStateInfo());
        }
    }

    我们在传递参数的时候,可以传递一个枚举对象,然后这个枚举对象中保存着我们需要的信息 ,就像上面用到的状态码和状态码详情。

  • 相关阅读:
    00 学习资源整理
    07 MySQL的应用层调整,查询缓存设置,内存管理设置,并发参数的设置常识
    06 SQL语句编写优化
    05 Java的ReentrantLock与线程的顺序控制
    05 索引的使用常识(如何编写SQL语句避免索引失效)
    04 MYSQ的SQL优化需要了解的工具explain,profile,trace
    04 JAVA中park/unpark的原理以及JAVA在API层面线程状态总结
    03 MYSQL的体系结构以及存储引擎的基本知识
    02 链表编程题
    01 栈与队列
  • 原文地址:https://www.cnblogs.com/zhao307/p/5550867.html
Copyright © 2011-2022 走看看