封装状态信息码

2021-12-15

封装状态码

1,创建枚举类设置状态码

public enum AjaxStatus {
   OK(20000, "操作成功"),
   ERROR(50000, "操作失败"),

   ////登录状态相关的状态码
   EMAIL_NOT_FOUND(30000, "邮箱错误"),
   ADMIN_NOT_FOUND(30001, "用户未激活");

   private int status;
   private String message;

   //提供全参构造,不提供无参构造 ,状态码和信息不能为空
   AjaxStatus(int status, String message) {
       this.status = status;
       this.message = message;
  }

   //提供get方法,不提供set方法,值固定不可以设置
   public int getStatus() {
       return status;
  }

   public String getMessage() {
       return message;
  }
}

2,提供结果集用来封装状态码

public class AjaxResult extends HashMap<String, Object> {
   //把字符串定义成常量,final修饰不可更改,以后直接用,防止字符串过多打错
   public static final String STATUS = "status";
   public static final String MESSAGE = "message";
   public static final String DATA = "data";

   //只提供一个构造器且只能传入枚举类的状态码信息
//   并且用私有的修饰,不提供给外部传入数值
   private AjaxResult(AjaxStatus ajaxStatus) {
       this.put(STATUS, ajaxStatus.getStatus());
       this.put(MESSAGE, ajaxStatus.getMessage());
  }

   //   操作成功的方法
//   使用静态方法修饰 用的时候直接类点静态方法
   public static AjaxResult sucess() {
       AjaxResult ajaxResult = new AjaxResult(AjaxStatus.OK);
       return ajaxResult;
  }

   //   操作成功并且携带数据的方法
   public static AjaxResult sucess(Object data) {
       AjaxResult ajaxResult = new AjaxResult(AjaxStatus.OK);
       ajaxResult.put(DATA, data);
       return ajaxResult;
  }

   //   操作失败的方法
   public static AjaxResult error() {
       return new AjaxResult(AjaxStatus.ERROR);
  }
//   自定义操作失败的方法
//   失败的方法多种多样,有可能是邮箱不存在,有可能邮箱未激活等等
//   可以在枚举类中定义多种多样的AjaxStatus值
   public static AjaxResult error(AjaxStatus ajaxStatus){
       return new AjaxResult(ajaxStatus);
  }
}

3,外部调用

public class TestStatus {
   public static void main(String[] args) {
       System.out.println(AjaxResult.error(AjaxStatus.ADMIN_NOT_FOUND));
       System.out.println(AjaxResult.error(AjaxStatus.EMAIL_NOT_FOUND));
       System.out.println(AjaxResult.error());
       System.out.println(AjaxResult.sucess());
       System.out.println(AjaxResult.sucess("完成"));
  }
}

4,运行结果