@Data
public class Result<T> implements Serializable {
private Integer code; //编码:1成功,0和其它数字为失败
private String msg; //错误信息
private T data; //数据
public static <T> Result<T> success() {
Result<T> result = new Result<T>();
result.code = 1;
return result;
}
public static <T> Result<T> success(T object) {
Result<T> result = new Result<T>();
result.data = object;
result.code = 1;
return result;
}
public static <T> Result<T> error(String msg) {
Result result = new Result();
result.msg = msg;
result.code = 0;
return result;
}
}
在 Java 中,泛型的使用有一个特定的语法,其中 <T> 和 T 的位置和含义略有不同。让我们逐一解释。
1. 泛型声明 <T>
-
定义泛型:在类或方法的定义中,
<T>表示这是一个泛型类型的声明。这个T可以是任何类型的占位符,通常用来表示不特定的类型。它使得类或方法能够处理不同类型的数据。例如,在
Result<T>类的声明中,<T>表示这个类是一个泛型类,可以使用任意类型来替代T。
public class Result<T> implements Serializable { // ... }
2. 使用泛型 T
- 实际使用:在类的内部,使用
T来表示你在创建Result实例时传入的具体类型。这意味着data字段可以持有任何类型的数据,具体取决于实例化时使用的类型。
private T data; // data 可以是任何类型,具体类型在实例化时确定
3. 示例
考虑以下代码示例:
Result<String> stringResult = Result.success("Hello"); // T 被替换为 String Result<Integer> intResult = Result.success(123); // T 被替换为 Integer
在这两个实例中:
- 在
Result<String>中,T变成String,因此data字段将持有一个字符串。 - 在
Result<Integer>中,T变成Integer,因此data字段将持有一个整数。
总结
<T>是泛型的声明:用于定义一个类、接口或方法是泛型的,允许它接受不同的类型参数。T是泛型的使用:在类或方法内部引用这个泛型类型,以便处理具体的类型。
247

被折叠的 条评论
为什么被折叠?



