JAVA泛型求助

来源:百度知道 编辑:UC知道 时间:2024/09/22 18:31:03
public <T> T find(Class <T> entityClass, Object primaryKey);
想知道public后 <T> 和 T 的真正含义是什么。我在网上查了查,知道 T 的含义是指定返回值的类型,但是<T>的含义还不知道。请知道的朋友给小弟说说,先谢了!

其实这里的<T>起的就是声明的作用,尖括号中<T>就声明了这个方法要用到于T类型有关的变量。
据我了解,范型有两种,一种作用于整个类,这个类就成为了范型类,比如说你可以看到jdk中的容器类,ArrayListr<T>,定义时要在声明类的时候指定,如果你自己定义了一个类A,就可以这么定义public class A<T>{},你在其他地方构建类的实例时,最好就能够给他传一个具体类的类型,如A a=new A<B>();

还有一种范型就是你举的这个例子,我当时学习的时候,书上把这个方法叫做泛化方法(可能还有其他的叫法)。泛化方法中这个T只作用在方法内,你可以在这个方法内使用与T有关的变量,举个最简单的例子
public <T> T get(T t){
return t;
}
在使用这个方法的时候,和泛型类一样先要确定T的类型,但是有一点不同,如果是泛型类,可以直接采用类似ArrayList<B>的方式,但是泛化方法没有这样的规则,a.get<B>get(m),编译通不过,在使用泛化方法的时候直接给它传参数就行了(好像也只有这个方法),a.get(m)

括号中是实体类类型名应用的比较多,例如List<User>。其中User是实体类或者是javabean、ActionForm

<T>这个T是一个类名,当定义Class<T>,说明这个Class和T.getClass()是等价的,当ArrayList<T>,如果有这样的定义的话,说明这个List里面存放的是T对象。

T可以是任何类型,你指定它是什么类型,它就是什么类型,你可以把T理解为一个存放类型的变量

就是一种java中的类型