Files
Mir4UpdaterBackend/src/main/java/com/mir4updater/backend/result/Result.java
2025-04-08 20:02:27 +08:00

159 lines
4.1 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.mir4updater.backend.result;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Result<T> {
// 响应状态
private boolean success;
// 状态码
private int code;
// 响应消息
private String message;
// 响应数据(泛型)
private T data;
// 常用状态码常量
public static final int CODE_SUCCESS = 200;
public static final int CODE_UNKNOWN_REASON = 201;
public static final int CODE_ERROR = 500;
public static final int CODE_BAD_REQUEST = 400;
public static final int CODE_UNAUTHORIZED = 401;
public static final int CODE_NOT_FOUND = 404;
// 私有构造方法
private Result() {
}
// 链式调用方法
public Result<T> setSuccess(boolean success) {
this.success = success;
return this;
}
public Result<T> setCode(int code) {
this.code = code;
return this;
}
public Result<T> setMessage(String message) {
this.message = message;
return this;
}
public Result<T> setData(T data) {
this.data = data;
return this;
}
// Getter方法
public boolean isSuccess() {
return success;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public T getData() {
return data;
}
// 成功静态方法
public static <T> Result<T> success() {
return success(null);
}
public static <T> Result<T> success(T data) {
return new Result<T>()
.setSuccess(true)
.setCode(CODE_SUCCESS)
.setMessage("操作成功")
.setData(data);
}
// 错误静态方法
public static <T> Result<T> error() {
return error(null);
}
public static <T> Result<T> error(String message) {
return error(message, CODE_ERROR);
}
public static <T> Result<T> error(String message, int code) {
return new Result<T>()
.setSuccess(false)
.setCode(code)
.setMessage(message);
}
public static <T> Result<T> notFound() {
return new Result<T>()
.setSuccess(false)
.setCode(CODE_NOT_FOUND)
.setMessage("没有找到数据");
}
// 快速创建Map类型data示例
public static Result<Map<String, Object>> mapResult() {
return new Result<Map<String, Object>>()
.setData(new HashMap<>());
}
public static Result<Map<String, Object>> mapResult(String key, Object value) {
Map<String, Object> map = new HashMap<>();
map.put(key, value);
return new Result<Map<String, Object>>()
.setData(map);
}
public static Result<Map<String, Object>> mapResult(Map<String, Object> map) {
return new Result<Map<String, Object>>()
.setData(map);
}
// 快速创建List类型data示例
public static <E> Result<List<E>> listResult(List<E> list) {
return new Result<List<E>>()
.setData(list);
}
// 示例用法
public static void main(String[] args) {
// 1. 返回简单对象
Result<User> userResult = Result.success(new User("Alice", 25));
// 2. 返回Map
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("page", 1);
dataMap.put("total", 100);
Result<Map<String, Object>> mapResult = Result.mapResult(dataMap);
Result<Map<String, Object>> map = Result.mapResult().setData(dataMap);
// 3. 返回List
Result<List<String>> listResult = Result.listResult(List.of("A", "B", "C"));
// 4. 错误返回
Result<?> errorResult = Result.error("参数校验失败", CODE_BAD_REQUEST);
}
// 示例内部类
static class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
// getters/setters...
}
}