java关于泛型T解释

以程序为例
package com.ats.result;

public class Result<T> {
	
	private int code;
	private String msg;
	private T data;
	
	/**
	 *  成功时候的调用           第一个<T>是固定语法 可以理解为在这个方法中使用的泛型用符号T表示,当然你也可以用别的名字。    Result<T>代表类Result的定义中也是用了泛型public class Result<T> {}
	 * */
	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;
	}
}

public static  <T> Result<T> success(T data){
return new Result<T>(data);
}

第一个<T>是固定语法 可以理解为在这个方法中使用的泛型用符号T表示,当然你也可以用别的名字。    Result<T>代表类Result的定义中也是用了泛型的,public class Result<T> {}            ===》称为泛型类

==================================================================
第一个固定写法,那么他的作用是什么呢,声明吗,那么第二个呢
可以这么理解 应该叫类型占位符
第二个问题有点难回答。这么说吧。泛型的引入是为了通过类型约束机制实现类型转换的安全性。

==========================================================

以上理解仅供参考,欢迎各位指正



猜你喜欢

转载自blog.csdn.net/swy18929564409/article/details/80747726