首页 > 文体 > 问题 > 泛型类学习笔记

泛型类学习笔记

来源:整理 时间:2022-08-18 23:18:34 编辑:派代电商 手机版

泛型类

如果有一个类 Holder 用于包装一个变量,这个变量的类型可能是任意的,怎么编写 Holder 呢?在没有泛型之前可以这样:

泛型类学习笔记

在 Holder1 中,有一个用 object 引用的变量。因为任何类型都可以向上转型为 object,所以这个 Holder 可以接受任何类型。在取出的时候 Holder 只知道它保存的是一个 object 对象,所以要强制转换为对应的类型。在 main 方法中, holder1 先是保存了一个字符串,也就是 String 对象,接着又变为保存一个 Integer 对象(参数 1 会自动装箱)。从 Holder 中取出变量时强制转换已经比较麻烦,这里还要记住不同的类型,要是转错了就会出现运行时异常。

下面看看 Holder 的泛型版本:

泛型类学习笔记

在 Holder2 中, 变量 a 是一个参数化类型 T,T 只是一个标识,用其它字母也是可以的。创建 Holder2 对象的时候,在尖括号中传入了参数 T 的类型,那么在这个对象中,所有出现 T 的地方相当于都用 String 替换了。现在的 get 的取出来的不是 object,而是 String 对象,因此不需要类型转换。另外,当调用 set 时,只能传入 String 类型,否则编译无法通过。这就保证了 holder2 中的类型安全,避免由于不小心传入错误的类型。

通过上面的例子可以看出泛使得代码更简便、安全。引入泛型之后,Java 库的一些类,比如常用的容器类也被改写为支持泛型,我们使用的时候都会传入参数类型,如:ArrayList<Integer> list = ArrayList<>();。

泛型方法

泛型不仅可以针对类,还可以单独使某个方法是泛型的,举个例子:

泛型类学习笔记

GenericMethod 类本身不是泛型的,创建它的对象的时候不需要传入泛型参数,但是它的方法 f 是泛型方法。在返回类型之前是它的参数标识 <K,V>,注意这里有两个泛型参数,所以泛型参数可以有多个。

调用泛型方法时可以不显式传入泛型参数,上面的调用就没有。这是因为编译器会使用参数类型推断,根据传入的实参的类型 (这里是 integer 和 String) 推断出 K 和 V 的类型。


文章TAG:

最近更新

  • 乌鲁木齐市的海洋馆在哪里,乌鲁木齐水族馆乌鲁木齐市的海洋馆在哪里,乌鲁木齐水族馆

    乌鲁木齐水族馆2,乌鲁木齐迎宾路海洋馆现在还在吗3,乌鲁木齐有哪几个海洋馆门票多少坐几路车能到4,乌鲁木齐最大的水族馆在哪里票价多少5,请问从乌鲁木齐卡子湾做几路公交可以到海洋馆6,乌.....

    问题 日期:2024-03-28

  • 拼多多开店费用明细怎么看,在拼多多上开店要交什么费用拼多多开店费用明细怎么看,在拼多多上开店要交什么费用

    在拼多多上开店要交什么费用2,在拼多多里面怎么开个店需要多少钱3,拼多多开店要收多少钱多多情报通4,拼多多开店需要交多少钱保证金金5,拼多多开店流程及费用多少6,手机拼多多金额怎么看7,怎.....

    问题 日期:2024-03-28

  • 怎样做网上代理卖东西赚钱,怎样利用网络代理来赚钱怎样做网上代理卖东西赚钱,怎样利用网络代理来赚钱

    本文目录一览1,怎样利用网络代理来赚钱2,在网上做代理卖东西的详细步骤3,在网上开店怎么做代理4,网上代理应该怎么做5,怎么做网络销售代理6,在网上做代理那在哪获得利润呢1,怎样利用网络代理.....

    问题 日期:2024-03-28

  • 微信公众号互粉群二维码最新,微信求互粉微信号xinyuevip002微信公众号互粉群二维码最新,微信求互粉微信号xinyuevip002

    本文目录一览1,微信求互粉微信号xinyuevip0022,微信互赞群二维码扫描即刻加入3,微信公众号互粉二维码老是加载失败怎么办4,微信公众平台二维码在哪5,刚刚开通微信公众平台怎么样才能达到500.....

    问题 日期:2024-03-27

  • 如何上公众号,微信公众号怎么进入如何上公众号,微信公众号怎么进入

    微信公众号怎么进入到公众平台的网站上,使用你公众号帐户和密码登录电脑搜索微信公众平台,登录注册选择登录,输入密码然后管理员扫码验证,即可登录。2,怎么进入公众号您好。首先我想知道。.....

    问题 日期:2024-03-27

  • 商家如何购买运费险多少钱,卖家如果交运费险 应该怎么交 交多少钱商家如何购买运费险多少钱,卖家如果交运费险 应该怎么交 交多少钱

    卖家如果交运费险应该怎么交交多少钱卖家中心那里,有个商家保障,就是交保证金的那个地方,就可以看到很多保障服务,那里就能看到运费险了。开通运费险以后,每一单交易,就会自动扣除费用来充当.....

    问题 日期:2024-03-27

  • 义乌小商品百货批发,义乌小商品批发市场具体位置在哪里义乌小商品百货批发,义乌小商品批发市场具体位置在哪里

    义乌小商品批发市场具体位置在哪里浙江义乌小商品批发市场在浙江省义乌市,分为国际商贸城1-5区,和篁园服装市场。国际商贸城在南从商城大道,北至诚信大道,西起稠州北路,东至商博路。分为5个.....

    问题 日期:2024-03-27

  • 淘宝网的官网电话,淘宝网电话是多少淘宝网的官网电话,淘宝网电话是多少

    淘宝网电话是多少2,淘宝网官方电话号码是什么3,淘宝网官方网客服电话是什么4,淘宝网的公司官方电话是什么5,淘宝网官方客服热线是什么6,淘宝网官方电话是多少7,淘宝网客服电话是多少1,淘宝网.....

    问题 日期:2024-03-27

相关文章

文体排行榜推荐