对Java泛型的简单理解

对Java泛型的简单理解

本人新手,看到“泛型”就心里发怵,“课本”讲得简单,网上搜的感觉迷糊。经过一番揣摩,有如下心得。
大神们说,泛型,即“参数化类型”。刚读这句话,如坠云雾,现在有些清晰了。
先理解此中的“类型”:在这样一行代码中

Box  name = new Box();

Box就是实例name的类型。

再理解 “参数化”类型:编写了一个处理“String类型数据”的类Box,较复杂,但挺好使。假如现在还要编写一个处理Integer类型的类,且此类构造与Box一模一样,仅仅是内部处理的数据类型不一样,怎么办,是不是再重新写一遍代码?大可不必。其实在写Box类时,将处理不同类型数据这个需求也考虑进去,就能解决重复写代码,低效、易错的问题。于是大神们在Box后面加了个尖括号,括号里是要处理的数据类型,重写Box类,并用如下代码创建对象:

Box<String> name = new Box<>();Box<Integer> name = new Box<>();

尖括号中的内容可以理解成一种“参数”,形如Box<String>等含有不同参数的“类型”,就叫“参数化类型”,即泛型。泛,广泛,多的意思,很多种类型即泛型,尖括号里放进去一种参数,就变成一种类型。

再举个例子。
一模一样的汽车,工厂生产了很多辆。一辆写上“蔬菜”两个字,并用来运蔬菜,就是蔬菜型车;写上“客运”,并用来拉客,就变成了客运型车…其中蔬菜(西红柿、黄瓜、豆角等)、乘客(老人、小孩、孕妇等)等就是要处理的数据。转换成代码就是:

Car<Vagetable> vagetable = new Car<>(); // 或
Car<Passenger> passenger = new Car<>();

其中Car<?> 就是一个类型,一个“参数化”类型,一个泛型。其中的“参数”(如Vagetable),可以看作这个类型的组成部分,用以约束此类的功能(能干什么,不能干什么)。
以上即是对泛型的粗浅理解,希望对初学者有所帮助。至于对泛型全面、细致、严谨的介绍还需要认真阅读相关资料,以免误人子弟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值