我目前正在学习Java,最近被尖括号(<>)所困扰。它们到底是什么意思?
(<>)
public class Pool<T>{ public interface PoolFactory<T>{ public T createObject(); } this.freeObjects= new ArrayList<T>(maxsize) }
什么<T>意思 这是否意味着我可以创建类型的对象T?
<T>
T
<T>是泛型,通常可以理解为“ T型”。它取决于<>左侧的实际含义。
<>
我不知道什么是Pool或者PoolFactory是,不过你还别说ArrayList<T>,这是一个标准的Java类,所以我会跟那个。
Pool
PoolFactory
ArrayList<T>
通常,你不会在其中看到“ T”,而会看到另一种类型。因此ArrayList<Integer>,例如,如果看到,则表示“ An ArrayListof Integers”。例如,许多类都使用泛型来约束容器中元素的类型。另一个示例是HashMap<String, Integer>,表示“具有String键和Integer值的映射”。
ArrayList<Integer>
“ An ArrayListof Integers”
HashMap<String, Integer>
String
Integer
你的Pool示例有点不同,因为你正在定义一个类。因此,在这种情况下,你正在创建一个可以由其他人实例化的类,以代替T。例如,我可以Pool<String>使用你的类定义来创建类型的对象。那将意味着两件事:
Pool<String>
PoolFactory<String>
createObject
Strings
ArrayList
这是个好消息,因为在另一时间,我可以创建一个Pool<Integer>将使用相同代码的代码,但是Integer无论你T在源代码中看到的是什么。
Pool<Integer>