美文网首页
枚举简介

枚举简介

作者: 大黑跟小白的日常 | 来源:发表于2020-06-10 21:46 被阅读0次

问题描述

1、Result封装返回消息,用String接收message存在的问题;

2、服务层暴露一个接口供其它服务调用,比如根据用户id、订单状态查询订单数据,接口请求参数设置为 Integer userId, Integer status存在的问题;

作用

主要作用:规定某个类的实例只有哪一些可以在程序中使用,进一步可以约定方法参数取值范围,还可以约定类的行为只能有哪几种实现方式;

枚举是一种独特的Java类型

enum 定义的枚举类 默认继承 java.lang.Enum 类;

枚举的本质是 java.lang.Enum 的子类;

枚举实例实则都是枚举类的静态匿名内部类实例对象;

代码描述

模拟枚举类

/**
 * @Author G_Y
 * @Date 2020/6/10 10:25
 * @Description: 模拟枚举类
 **/
public abstract class LikeEnum {
    public abstract void f();
    private String message;
    private LikeEnum(String message){
        this.message = message;
    }
    public String getMessage() {
        return message;
    }
    public static final LikeEnum A_BEAN = new LikeEnum("A_BEAN"){
        @Override
        public void f() {
            System.out.println("第一种行为");
        }
    };
    public static final LikeEnum B_BEAN = new LikeEnum("B_BEAN"){
        @Override
        public void f() {
            System.out.println("第二种行为");
        }
    };
    public static final LikeEnum C_BEAN = new LikeEnum("C_BEAN"){
        @Override
        public void f() {
            System.out.println("第三种行为");
        }
    };
}

真实枚举类

/**
 * @Author G_Y
 * @Date 2020/6/10 10:47
 * @Description: 枚举类
 **/
public enum RealEnum {
    A_BEAN("A_BEAN"){
        @Override
        public void f() {
            System.out.println("第一种行为");
        }
    },
    B_BEAN("B_BEAN"){
        @Override
        public void f() {
            System.out.println("第二种行为");
        }
    },
    C_BEAN("C_BEAN"){
        @Override
        public void f() {
            System.out.println("第三种行为");
        }
    };
    public abstract void f();
    private String message;
    private RealEnum(String message){
        this.message = message;
    }
    public String getMessage() {
        return message;
    }
}

具体使用

public class Test {
    public static void main(String[] args) {
        new Test().testServicePro(RealEnum.A_BEAN);
    }
    public void testServicePro(RealEnum realEnum) {
        // 执行一个动作
        realEnum.f();
        // 访问数据库 string
        String message = realEnum.getMessage();
        System.out.println(message);
    }
}

封装结果提示消息

/**
 * @Author G_Y
 * @Date 2020/6/10 9:45
 * @Description: 返回调用方的Result对象
 **/
public class Result {
    private String message;
    private Integer code;
    private Object data;
    private Boolean success;
    public Result(Object data, EResultCode eResultCode) {
        this.data = data;
        this.success = eResultCode.getSuccess();
        this.code = eResultCode.getCode();
        this.message = eResultCode.getMessage();
    }
}
/**
 * @Author G_Y
 * @Date 2020/6/10 9:45
 * @Description: 提示信息封装
 **/
public enum EResultCode {
    /**
     * "操作成功",2000,Boolean.TRUE
     */
    SUCCESSED("操作成功",2000,Boolean.TRUE),
    /**
     * "非法参数",5001,Boolean.FALSE
     */
    ILLEGAL_PARAMETER("非法参数",5001,Boolean.FALSE);
    private String message;
    private Integer code;
    private Boolean success;
    private EResultCode(String message,Integer code,Boolean success){
        this.code = code;
        this.message = message;
        this.success = success;
    }
    public String getMessage() {
        return message;
    }
    public Integer getCode() {
        return code;
    }
    public Boolean getSuccess() {
        return success;
    }
}

相关文章

  • 枚举简介

    问题描述 1、Result封装返回消息,用String接收message存在的问题; 2、服务层暴露一个接口供其它...

  • OC枚举之简介

    背景 对于开发者来说,枚举是最普通不过的一种开发手段。它通常用来定义一种类型的状态,这个状态可能有2个,也可能有7...

  • python工具库介绍-enum: 枚举

    简介 枚举是常量的集合,支持根据id比较和迭代等功能。 创建枚举 继承Enum类,添加类属性即可创建枚举。 enu...

  • 11、枚举类型线程安全

    1. 枚举线程安全 1.1 枚举简介   枚举是Java SE5 提供的一种新类型,关键字 enum 可以将一组具...

  • iOS 编程:UISearchBar

    UISearchBar 简介 UISearchBar 继承关系: UISearchBar 样式 枚举类型,可选值如...

  • 枚举&泛型

    简介 枚举是一种特殊的类,创建枚举类的关键字是enum,通常用于设置常量,枚举限制变量只能是预先设定好的值。使用枚...

  • swift基础_枚举

    一.枚举简介 原始值不会占用枚举的内存空间的,即原始值不会存储在枚举里面(是在编译期间就确定了值并存储在了静态区)...

  • java 枚举(enum) 全面解读

    简介 枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。枚举类是一种特殊类,它和普通类一样可以使用...

  • IIS-ShortName-Scanner

    0×00 漏洞简介 Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的...

  • Objective-C枚举的几种定义方式与使用

    假设我们需要表示网络连接状态,可以用下列枚举表示: 然而定义枚举变量的方式却太不简介,要依如些语法编写: 若是每次...

网友评论

      本文标题:枚举简介

      本文链接:https://www.haomeiwen.com/subject/vjpptktx.html