Java-What';s<&燃气轮机;用过什么';它叫什么名字?

Java-What';s<&燃气轮机;用过什么';它叫什么名字?,java,generics,Java,Generics,我正在处理一些示例代码,然后出现了: public abstract class RandomPool<T> extends Pool { //Class... } 公共抽象类RandomPool扩展池{ //类。。。 } 用于什么?为什么只T?这对我来说似乎很随意。但是,我如何从更长远的角度使用它来制作程序 谢谢,如果我需要添加更多细节,请告诉我 见 T代表“Type”这是如何声明类接受的泛型类型的。您介绍的示例如下: 类型为T的抽象类ObjectPool扩展了池泛型

我正在处理一些示例代码,然后出现了:

public abstract class RandomPool<T> extends Pool {
     //Class...
}
公共抽象类RandomPool扩展池{
//类。。。
}
用于什么?为什么只
T
?这对我来说似乎很随意。但是,我如何从更长远的角度使用它来制作程序

谢谢,如果我需要添加更多细节,请告诉我


T代表“Type”

这是如何声明类接受的泛型类型的。您介绍的示例如下:


类型为T的抽象类ObjectPool扩展了池

泛型

T
是运行时使用的任何类型的占位符。例如,您可以使用:

RandomPool<String> pool;
randombool;
在这种情况下,
T
将引用
String


阅读

非常短的说明T是一个编译器变量。发布代码后,您可以拥有一个随机字符串池,例如:
randomPool
一个随机foo池,
eg:RandomPoo
。。。。差不多什么都可以


阅读dom farr的链接时,请记住这一点

即所谓的类型参数

基本上,您的类
RandomPool
是一个泛型类。它有一个类型参数,因此可以使用调用者提供的不同类。查看Java集合,它将更加清晰

另外,请注意,
T
不是关键字,您可以随意命名类型参数。这只是使用T型的惯例。有些集合使用类E元素。

这是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);
}
Hashmap hm=newhashmap();
hm.put(“k1”,1);
hm.put(“k2”,2);
迭代器it=hm.Iterator();
while(it.hasNext()){
字符串curr=it.next();
int值=hm.get(当前值);
}
在这里,您可以理解Hashmap有两种类型(一般类型,您可以使用任何您想要的东西..从本机到自定义类等等)。 在您发布的示例中,RandomPool应该使用特定的自定义类型进行实例化!因此,当您决定使用它时,您应该以这种方式编写代码(即:

RandomPool myR=newrandompool();

这一点也不奇怪。这只是Java对秩-1参数多态性的语法。

是否有必要只是T或者我可以随意使用任何字母?谢谢大家的回答!我将通读Java泛型文档,确保我理解了所有内容,然后根据我对文档的理解,我将接受最具描述性的答案。
RandomPool<String> myR = new RandomPool<String>();