关于泛型以及它们在这个问题背后真正做了什么有一个很好的讨论,所以我们都知道Vector<int[]>是一个整数数组的向量,HashTable<String, Person>是一个键是字符串和值Person的表。
然而,令我困惑的是Class<>的用法。
java类class也应该有一个模板名(或者是eclipse中的黄色下划线告诉我的)。我不知道我应该在里面写什么。Class对象的全部意义是当您没有关于对象的全部信息时,用于反射等。为什么它让我指定哪个类的类对象将持有?我显然不知道,否则我不会使用Class对象,我会使用特定的对象。
在java <T中>表示泛型类。泛型类可以处理任何类型的数据类型,换句话说,它是独立于数据类型的。
public class Shape<T> {
// T stands for "Type"
private T t;
public void set(T t) { this.t = t; }
public T get() { return t; }
}
T表示类型。现在,当你创建这个Shape类的实例时,你需要告诉编译器它将处理什么数据类型。
例子:
Shape<Integer> s1 = new Shape();
Shape<String> s2 = new Shape();
Integer是一个类型,String也是一个类型。
<T>特别代表泛型类型。根据Java文档-泛型类型是通过类型参数化的泛型类或接口。