Java泛型初学之相关概念

本文探讨了Java泛型的引入背景,如何解决因类型不明确导致的问题,如强制类型转换和潜在的风险。重点讲解了泛型的正确使用方法,以及多态与泛型的结合实例,并指出常见错误。通过学习,读者将理解如何避免运行时异常,提高代码的类型安全性与可维护性。
摘要由CSDN通过智能技术生成

Java泛型:

为什么使用泛型:

在Java中增加泛型之前,泛型程序设计是使用继承来实现的,其实在集合中添加的都是Object类的对象。但这样做的话还是有一些坏处的。
坏处:
1、需要强制类型转换(例如:把一个Object类型转换为字符串类型或者其他类型)。
2、可以向集合中添加任意类型的对象,存在风险。(例如:把一个Cat对象强制转换为String类型,虽然在编译阶段没有错误,但是在运行阶段会出现运行时异常,所以这样的结果是存在一定风险的)。
注: 使用泛型以后就能解决这样的一些问题。

泛型的正确使用:
List <String> list = new ArrayList<String>();

定义集合对象的时候把泛型写在一对<>里,例如上面定义了一个List对象,List<>里写上字符串,限制在List当中只能添加字符串的内容,然后在ArrayList这个类的后面也要有一个<>并写上String。

当然,在Java SE7及以后的版本中,构造方法当中是可以省略泛型类型的。(如下代码)

List <String> list = new ArrayList<>();//此时ArrayList的<>里什么都不用写

多态与泛型:

相关代码如下:

//定义一个Animal类
class Animal{}
//定义一个Cat类继承Animal类
class Cat extends Animal{}
//第三行代码这里Animal是父类,Cat是子类。这是错误的写法!是不允许的!)
List <Animal> list = new ArrayList <Cat>();

注:正确写法应该是变量声明的类型必须匹配传递给实际对象的类型,所以尖括号里必须是一致的。

其他错误写法(如下):
//1、
List <Object> list = new ArrayList<String>();
//2、
List <Number> numbers = new ArrayList<Integer>();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发呆小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值