@ApiModel("响应信息主体")
public class Result<T> implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("返回标记:成功标记=0,失败标记=1")
private int code;
@ApiModelProperty("返回信息")
private String msg;
@ApiModelProperty("数据")
private T data;
public static <T> Result<T> ok() {
return (Result<T>) restResult((Object) null, 0, (String) null);
}
public static <T> Result<T> ok(T data) {
return restResult(data, 0, (String) null);
}
public static <T> Result<T> ok(T data, String msg) {
return restResult(data, 0, msg);
}
public static <T> Result<T> failed() {
return (Result<T>) restResult((Object) null, -1, (String) null);
}
public static <T> Result<T> failed(String msg) {
return (Result<T>) restResult((Object) null, -1, msg);
}
public static <T> Result<T> failed(T data) {
return restResult(data, -1, (String) null);
}
public static <T> Result<T> failed(T data, String msg) {
return restResult(data, -1, msg);
}
private static <T> Result<T> restResult(T data, int code, String msg) {
Result<T> apiResult = new Result();
apiResult.setCode(code);
apiResult.setData(data);
apiResult.setMsg(msg);
return apiResult;
}
public static <T> ResultBuilder<T> builder() {
return new ResultBuilder();
}
@Override
public String toString() {
return "R(code=" + this.getCode() + ", msg=" + this.getMsg() + ", data=" + this.getData() + ")";
}
public Result() {
}
public Result(int code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public int getCode() {
return this.code;
}
public Result<T> setCode(int code) {
this.code = code;
return this;
}
public String getMsg() {
return this.msg;
}
public Result<T> setMsg(String msg) {
this.msg = msg;
return this;
}
public T getData() {
return this.data;
}
public Result<T> setData(T data) {
this.data = data;
return this;
}
public static class ResultBuilder<T> {
private int code;
private String msg;
private T data;
ResultBuilder() {
}
public ResultBuilder<T> code(int code) {
this.code = code;
return this;
}
public ResultBuilder<T> msg(String msg) {
this.msg = msg;
return this;
}
public ResultBuilder<T> data(T data) {
this.data = data;
return this;
}
public Result<T> build() {
return new Result(this.code, this.msg, this.data);
}
@Override
public String toString() {
return "R.RBuilder(code=" + this.code + ", msg=" + this.msg + ", data=" + this.data + ")";
}
}
}
使用案例:
@GetMapping("/get")
public Result get() {
return Result.ok("success");
}