我正在学习Java,最近被尖括号(<>)难住了。它们到底是什么意思?
public class Pool<T>{
public interface PoolFactory<T>{
public T createObject();
}
this.freeObjects = new ArrayList<T>(maxsize)
}
<T>
是什么意思?意思是?这是否意味着我可以创建 T
类型的对象?
最佳答案
<T>
是一个泛型,通常可以读作“T 类型”。这取决于 <> 左侧的类型实际含义。
我不知道Pool
是什么或PoolFactory
是,但你还提到ArrayList<T>
,这是一个标准的 Java 类,所以我将讨论它。
通常,您不会在那里看到“T”,您会看到另一种类型。所以如果你看到ArrayList<Integer>
例如,这意味着“ArrayList
的 Integer
s”。例如,许多类使用泛型来约束容器中元素的类型。另一个例子是 HashMap<String, Integer>
,这意味着“带有 String
键和 Integer
值的 map 。”
您的 Pool 示例有点不同,因为您定义一个类。因此,在这种情况下,您正在创建一个类,其他人可以使用特定类型代替 T 来实例化该类。例如,我可以创建一个 Pool<String>
类型的对象。使用您的类定义。这意味着两件事:
- 我的
Pool<String>
将有一个接口(interface)PoolFactory<String>
与createObject
返回String
的方法 - 在内部,
Pool<String>
将包含ArrayList
字符串。
这是个好消息,因为在其他时间,我可以一起创建一个 Pool<Integer>
它将使用相同的代码,但有 Integer
无论你看到什么T
在源代码中。
关于java - <T>(尖括号)在 Java 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57497302/