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());
        }
    }

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

  • 相关阅读:
    12.4案例分析:NASAECS项目
    第12章 CBAM:构架设计决策制定的定量方法
    11.4 Nightingale系统:应用ATAM的案例分析
    第11章 ATAM:一种进行构架评估的综合方法
    第Ⅲ部分 分析构架
    第10章 软件构架重构
    9.5跨视图的文档
    第9章 构架编档
    基于Spring MVC的Web应用开发(三)
    Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结
  • 原文地址:https://www.cnblogs.com/zhao307/p/5550867.html
Copyright © 2011-2022 走看看