T 表示的是一个没有具体类型的对象,当我们没有具体指明T的类型时,它将是一个Object类型,也就是任何对象的父类,正因为如此,所以你可以在设置它时轻松的转换具体类型:
f.setOver(1);
f.setOver(1.55);
这样就简化了代码,提高我们的效率。否则,我们每次不同的类型,都需要为此去创建一个 FanXingInteger、FanXingDouble等等对象。、
当然,当我们为T指定了具体类型时,T将只能是我们指定的具体类型,例如:
Set<String> s = new HashSet<String>();
s.add("a");
s.add('c');
package com.zgm.result;
public class Result<T> {
private int code;
private String msg;
private T data;
public static <T> Result<T> success(T data){
return new Result<T>(data);
}
public static <T> Result<T> error(CodeMsg codeMsg){
return new Result<T>(codeMsg);
}
private Result(T data) {
this.data = data;
}
private Result(int code, String msg) {
this.code = code;
this.msg = msg;
}
private Result(CodeMsg codeMsg) {
if(codeMsg != null) {
this.code = codeMsg.getCode();
this.msg = codeMsg.getMsg();
}
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}