温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java泛型的基础知识

发布时间:2020-06-23 23:04:44 来源:亿速云 阅读:148 作者:Leah 栏目:编程语言

这篇文章将为大家详细讲解有关Java泛型的基础知识,文章内容质量较高,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

概念

来源:Java在设计开始之前不是通用的,直到它在JDK 1.5中被引入。Java泛型是通过擦除实现的。你知道什么是擦除吗?往下看。

概念:常规类和方法只能使用特定类型;基本类型或自定义类。如果要编写可应用于多种类型代码的代码,这种严格的限制将对代码施加很大的约束。泛型实现了参数化类型的概念,使代码能够应用于多个类型。当泛型在编程语言中出现时,它们的最初目的是希望类和方法具有广泛的表达能力。

简单的泛型

出现泛型有很多原因,其中最重要的一个原因是创建容器类。我们暂时不指定类型,但决定以后使用什么类型。为了实现这一目标,需要在类名后面使用类型参数,用尖括号括起来。然后,当使用此类时,将用实际类型替换此类型的参数。在下面的示例中,t是类型参数。代码如下:

Java泛型的基础知识

然而,在许多源代码中,一些泛型类具有多个泛型参数,例如Java。UTIL功能。双功能,有三种类型的参数t,u,r。

泛型方法

泛型方法使方法独立于类。在编写通用代码时,基本的指导原则是尽可能使用通用方法。这意味着,如果可以对整个类使用泛型方法而不是泛型方法,那么可以使用泛型方法,因为它们可以使事情更清楚。此外,对于静态方法,不能访问泛型类的类型参数,因此如果静态方法需要使用泛化功能,则必须将它们变为泛型方法。

泛型的擦除

当我读了Java编程思想的一般章节中的“被删除的奥秘”部分时,我特别头晕,然后当我向下看时,我变得越来越困惑。尤其是当你看边界和通配符的时候,它有点令人困惑。首先看看什么是擦除。在泛型代码中,有关泛型参数类型的信息不可用。Java泛型是通过擦除实现的,这意味着当使用泛型时,任何特定的类型都会被擦除,而您所知道的唯一一件事就是使用对象。由于Java最初没有引入泛型,所以它被设计成与旧版本的JDK兼容。ErAcess是Java通用实现之间的折衷。因此,当您运行时,list<string>与list<integer>相同。请注意,它正在运行,但在编译时,list<string>表示此字符串类型的列表容器,list<integer>表示当前整数类型的列表容器。例如,来自Java编程思想的例子。

Java泛型的基础知识

泛型的边界

Java中的泛型,当编译时,T表示一种类型,如果没有指定边界,它就等于对象。我们可以使用extends关键字为泛型指定边界。为了能够调用f(),我们可以在给定泛型类边界的情况下帮助泛型类,告诉编译器必须接受边界后面的类型。这里使用扩展关键字。将上述代码更改为

Java泛型的基础知识

以上就是Java泛型的基础知识,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注亿速云行业资讯,感谢各位的阅读。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI