00021.02 泛型的概述以及泛型的好处

系列文章目录

一、泛型的概述

泛型:JDK1.5之后引入的
泛型:泛化的类型,参数化类型
1、生活中:
生产瓶子的厂商,只负责生产瓶子,不管你这个瓶子将来用来装什么。
在超市中,大家看到的瓶子上都有标签(商标),表明这个瓶子中是什么。
生产饮料、酒、调料的厂商买回这个瓶子后,在装东西时,就给这个瓶子加上商标(标签)。
这个标签,就可以理解为泛型
贴上标签后,下次看到时,就知道里面是什么,我可以放心的使用。

2、Java中:
在这里插入图片描述
在这里插入图片描述
所以没有泛型的时候就很麻烦

例如:在设计集合这个容器的数据结构时,不知道我们程序员会用它来装什么对象。
可能用它装字符串对象,可能用它装Apple对象…
在设计时不确定元素的类型,但是在使用时,程序员是知道类型的。
现在需要一个方式,渠道,让使用者在使用这个集合等时,告知这个集合我里面装的是什么对象。这就需要泛型。

在这里插入图片描述
把a和b称为数据形参,因为a和b传的是数据值,不是类型
现在在设计这个集合时,元素的类型不确定,所以我把这个类型用形参表示,让使用者用实参给我确定这个类型。
因为它代表的是数据的类型,所以把这种形参称为类型形参和类型实参。
泛型:包括类型形参和类型实参

泛型:<类型>
例如:,…

代码

package com.atguigu.test02;
import java.util.ArrayList;
import org.junit.Test;
public class TestGeneric {
	
	//方法:求两个整数的和
	//在完成这个功能的时候,不确定,要求的两个整数的值,我通过形参让调用者告诉我整数的值
	//a,b叫做形参,调用时由实参赋值
	//为了区别,把a和b称为数据形参,因为a和b传的是数据值,不是类型
	public int sum(int a, int b){
		return a + b;
	}
	@Test
	public void test1(){
		//存本组学员的姓名,String对象
		ArrayList list = new ArrayList();
		list.add("张三");
		list.add("李四");
		list.add("王五");
		list.add(1);
		
		//使用时,不知道我这里面是String类型,统统按照Object
		for (Object object : list) {
			//每次使用元素时,可能需要强转,很麻烦,好比每次打开瓶子,你需要闻一下
			String name = (String) object;//强转有风险
			System.out.println("名字的长度:" + name.length());
		}
	}
}

二、泛型的好处

还是之前的代码,我们看下泛型的应用和好处
在这里插入图片描述
这时候还需要我们强转吗?不需要了
在这里插入图片描述

泛型的好处小结

1、安全
2、避免类型转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值