我正在研究一些示例代码,然后出现了这个:
public abstract class RandomPool<T> extends Pool {
//Class...
}
<>
是什么用途?为什么只有T
在里面?这对我来说似乎非常随机。但是,我如何从更长远的角度使用它来编写程序?
谢谢,如果需要添加更多细节,请告诉我!
RandomPool
是一个泛型类。它有一个类型参数,以便可以使用调用者提供的不同类。看看Java集合,比如List,就会更清楚了。T
不是关键字,你可以任意命名类型参数。只是习惯上使用T表示Type,有些集合使用E表示Element。使用 Java 的方式(泛型)来实现模板(在 C++ 中)。T 代表您想要为特定实例化对象使用的元素类型。
您可以通过查看以下示例轻松理解泛型:
Hashmap <String, int> hm = new HashMap<String,int>();
hm.put("k1",1);
hm.put("k2",2);
Iterator it = hm.iterator();
while (it.hasNext()){
String curr = it.next();
int value = hm.get(curr);
}
RandomPool<String> myR = new RandomPool<String>();
RandomPool<String>
,一个Foo的随机池,例如:RandomPoo<Foo>
,...... 几乎任何东西。这并不是什么高深的东西。这只是Java中用于一阶参数多态性的语法。