为了账号安全,请及时绑定邮箱和手机立即绑定

什么是Java中的泛型?

什么是Java中的泛型?

慕森卡 2019-09-02 11:07:48
我真的不明白泛型的意义。他们做了什么,你如何使用它们?据我所知,他们所做的只是在编译时检查返回类型而不是运行时间,以避免在抛出错误之前运行程序。这就是他们所做的一切吗?例如:public <Integer> int test() {    return 'c'; //will throw error at compile instead of runtime}我正在读一些关于泛型是如何随意的,你应该只使用大写字母?这有点令人困惑。
查看完整描述

2 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

泛型允许您根据您正在使用的任何类型自定义“ 通用 ”方法或类。例如,假设您有一个将两个数字相加的方法。为了使用类型本身,您可能必须创建此方法的多个版本。例如:


public int Add(int a, int b)


public double Add(double a, double b)


public float Add(float a, float b)

泛型允许您创建一个为调用它的类型自定义的方法。


public T Add<T>(T a, T b)

T 取代您使用的任何类型。


查看完整回答
反对 回复 2019-09-02
?
侃侃无极

TA贡献2051条经验 获得超10个赞

请参阅Angelika Langer常见问题解答中的基础知识 - 这是与您可能会发现的Java泛型相关的所有内容的最佳解释。也就是说,泛型的最初主要目标是启用“打字”集合。


查看完整回答
反对 回复 2019-09-02
?
当年话下

TA贡献1890条经验 获得超9个赞

我能想到解释泛型的最简单的方法是好的复制粘贴方法:


public <COPY> PASTE addTwoThings(PASTE a, PASTE b) {

    return a + b;

}

你指定一个类型(在<COPY>部分中)和java在整个代码块中使用这种类型,它将确保类型是兼容的。通过这种方式,你可以避免写:


addTwoIntegers

addTwoStrings

addTwoMyObjects

不要将此混淆为预处理器,但Java期望只提供一种类型。


查看完整回答
反对 回复 2019-09-02
  • 2 回答
  • 0 关注
  • 433 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信