首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java中的<T>(尖括号)是什么意思?

Java中的<T>(尖括号)是什么意思?
EN

Stack Overflow用户
提问于 2018-10-09 05:11:44
回答 2查看 0关注 0票数 0

我目前正在学习Java,最近被尖括号(<>)困扰了。他们究竟是什么意思?

代码语言:javascript
复制
public class Pool<T>{
    public interface PoolFactory<T>{
        public T createObject();
    }
    this.freeObjects= new ArrayList<T>(maxsize)
}

什么<T>意思?这是否意味着我可以创建一个类型的对象T

EN

回答 2

Stack Overflow用户

发布于 2018-10-09 13:56:47

<T>通用的,通常可以读作“T型”。它取决于<>左边的类型实际意味着什么。

我不知道是什么,Pool或者PoolFactory你也提到ArrayList<T>,这是一个标准的Java类,所以我会谈到它。

通常,你不会看到“T”,你会看到另一种类型。因此,如果您看到ArrayList<Integer>,例如,这意味着“An ArrayListof Integers。” 例如,许多类使用泛型来约束容器中元素的类型。另一个例子是HashMap<String, Integer>“带有String键和Integer值的地图”。

您的Pool示例有点不同,因为您正在定义一个类。因此,在这种情况下,您正在创建一个其他人可以用特定类型代替T进行实例化的类。例如,我可以Pool<String>使用您的类定义创建一个类型的对象。这意味着两件事:

  • Pool<String>将有一个返回s PoolFactory<String>createObject方法的接口String
  • 在内部,Pool<String>它将包含一个ArrayList字符串。

这是一个好消息,因为在另一个时间,我可以来创建一个Pool<Integer>使用相同代码的东西,但Integer无论你T在源头看到的地方都有。

票数 0
EN

Stack Overflow用户

发布于 2018-10-09 14:33:46

它与java中的泛型有关。如果我提到ArrayList<String>这意味着我只能将String类型对象添加到该ArrayList。

Java中泛型的两个主要好处是:

  1. 减少程序中的强制转换数量,从而减少程序中潜在错误的数量。
  2. 提高代码清晰度
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档