结果枚举类
public enum ResultEnum {
SUCCESS(200, "成功"),
NO_PERMISSION(403, "权限不足"),
NOT_FOUND(404, "资源不存在"),
SERVER_ERROR(500, "服务器错误");
private final Integer code;
private final String message;
ResultEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
public Integer getCode() {
return code;
}
public String getMessage() {
return message;
}
@Override
public String toString() {
return "ResultEnum{" +
"code=" + code +
", message='" + message + '\'' +
'}';
}
}
结果类
import com.fasterxml.jackson.annotation.JsonIgnore;
public class Result<D> {
private final Integer code;
private final String message;
private D data;
public Result(ResultEnum resultEnum) {
this.code = resultEnum.getCode();
this.message = resultEnum.getMessage();
}
public Result(ResultEnum resultEnum, D data) {
this.code = resultEnum.getCode();
this.message = resultEnum.getMessage();
this.data = data;
}
public Integer getCode() {
return code;
}
public String getMessage() {
return message;
}
public D getData() {
return data;
}
public void setData(D data) {
this.data = data;
}
@Override
public String toString() {
return "Result{" +
"code=" + code +
", message='" + message + '\'' +
", data=" + data +
'}';
}
@JsonIgnore
public boolean isSuccess() {
return this.code.equals(ResultEnum.SUCCESS.getCode());
}
}
使用
public class Test {
// 成功,无返回数据
public Result<Void> test1() {
return new Result<>(ResultEnum.SUCCESS);
}
// 成功,有返回数据
public Result<Object> test2() {
return new Result<>(ResultEnum.SUCCESS, new Object());
}
// 错误,无返回数据
public Result<Void> test3() {
return new Result<>(ResultEnum.NOT_FOUND);
}
// 错误,有返回值
public Result<Object> test4() {
return new Result<>(ResultEnum.SERVER_ERROR, new Object());
}
// 方法间调用
public void test5() {
Result<Void> result = this.test1();
if(result.isSuccess()) {
// Do something
}
}
}
网友评论