|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下
package com.itheima.big_evnet.pojo;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {
private Integer code;//业务状态码 0-成功 1-失败
private String message;//提示信息
private T data;//响应数据
//快速返回操作成功响应结果(带响应数据)
public static <E> Result<E> success(E data) {
return new Result<> (0, "操作成功", null); // 这行的报错信息是 Cannot infer type arguments for Result<>
}
//快速返回操作成功响应结果
public static Result success() {
return new Result(0, "操作成功", null); // 这行的报错信息是 The constructor Result(int, String, null) is undefined
}
public static Result error(String message) {
return new Result(1, message, null); // 这行的报错信息是The constructor Result(int, String, null) is undefined
}
}
抱歉,我之前的回答有误。在 Java 中,静态方法无法直接使用类定义的泛型类型,因为泛型类型是与实例相关联的。解决这个问题的方法有两种:
1. 将 `success()` 方法改为非静态方法,并将需要的类型参数传递给该方法。例如:
- public class Result<T> {
- private Integer code;
- private String message;
- private T data;
- public Result(Integer code, String message, T data) {
- this.code = code;
- this.message = message;
- this.data = data;
- }
- public static <T> Result<T> success(T data) {
- return new Result<>(0, "操作成功", data);
- }
- public static Result<Void> success() {
- return new Result<>(0, "操作成功", null);
- }
- public static Result<Void> error(String message) {
- return new Result<>(1, message, null);
- }
- }
复制代码
使用时可以这样调用:
- Result<Integer> result = Result.success(100);
- Result<Void> emptyResult = Result.success();
复制代码
2. 如果你希望 `success()` 方法保持静态方法,并且仍然想要返回带有泛型类型的 `Result` 对象,可以考虑将 `success()` 方法定义在一个单独的工具类中,该工具类带有泛型类型参数。例如:
- public class ResultUtils {
- public static <T> Result<T> success(T data) {
- return new Result<>(0, "操作成功", data);
- }
- }
复制代码
使用时可以这样调用:
- Result<Integer> result = ResultUtils.success(100);
复制代码
希望这次能够帮助到你,如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|