对AJAX请求返回的结果进行规范
编写ResultEntity,ajax返回数据的时候都返回该实体对象,成功,失败,消息,数据,都在这个对象里
这个类最大的作用就是 封装响应数据,封装处理结果
package com.yixuexi.crowd.util;import java.util.Objects;/*** @date: 2021/1/11 15:09* @author: 易学习* 统一整个项目中,AJAX请求返回的结果* 未来也可以用来分布式架构各个模块间调用时返回的数据* <T> 泛型,将来查询数据,查询到什么数据就是什么类型*/public class ResultEntity<T> {/*** 为了规范处理成功后返回什么,定义两个常量*/public static final String SUCCESS = "SUCCESS";public static final String FAILED = "FAILED";/*** 用来封装当前请求处理的结果是成功还是失败*/private String result;/*** 请求处理失败时,返回的错误消息*/private String message;/*** 返回的数据*/private T data;/*** 处理成功但是不需要返回数据* @param <E>前面的<E> 是声明一个泛型方法,后面的E是使用泛型* @return*/public static <E> ResultEntity<E> successWithoutData(){return new ResultEntity<E>(SUCCESS,null,null);}/*** 处理成功 并且需要返回数据* @param <E>* @return*/public static <E> ResultEntity<E> successWithData(E data){return new ResultEntity<>(SUCCESS,null,data);}/*** 处理失败,需要返回一个提示消息* @param message 出错的原因* @return*/public static <E> ResultEntity<E> failed(String message){return new ResultEntity<E>(FAILED,message,null);}public ResultEntity() {}public ResultEntity(String result, String message, T data) {this.result = result;this.message = message;this.data = data;}public String getResult() {return result;}public void setResult(String result) {this.result = result;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getData() {return data;}public void setData(T data) {this.data = data;}@Overridepublic String toString() {return "ResultEntity{" +"result='" + result + '\'' +", message='" + message + '\'' +", data=" + data +'}';}@Overridepublic boolean equals(Object o) {if(this == o) {return true;}if (o == null || getClass() != o.getClass()){ return false;}ResultEntity<?> that = (ResultEntity<?>) o;return Objects.equals(result, that.result) &&Objects.equals(message, that.message) &&Objects.equals(data, that.data);}@Overridepublic int hashCode() {return Objects.hash(result, message, data);}}
