黑马程序员——自学笔记7(泛型)

本文深入讲解Java泛型的概念与应用,包括泛型的好处、使用格式、泛型类、泛型方法、泛型接口等核心内容,并探讨了泛型限定与通配符的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

泛型:为了防止向集合中存储元素时,出现不同类型的元素,就在定义指定元素

类型

好处:1.将运行时期才出现的ClassCastException,转移到编译时期,让程序

员发现并解决问题(安全)

2.避免强制转换的麻烦

格式:ArrayList<Integer>al=new ArrayList<Integer>();

如果之后要将集合中的元素放入临时容器(迭代器)中时,也要使用泛型

Iterator<Integer>it=al.iterator();

泛型类:当类中操作的引用数据类型(基本数据类型不行)不确定时

Class Utils<QQ>{

              private QQ q;

public void setObject(QQ q){

       this.q=q;

}

public QQ setObject(){

       return q;

}

           }

           主函数中

           Utils<Worker> ut=new Utils<Worker>;

           ut.setObject(new Worker());

           Worker w=ut.getObject();//不用强转

泛型方法:当定义泛型类时,在主函数中明确要操作的对象类型后,泛型类中的方法索要操作的类型就固定了,要想操作其他类型,就要再建立一个其他类型的对象

因此,把泛型定义在方法中,当传入什么类型的参数时,就操作什么类型的参数,不用再new

           Class Demo{

    public <T>void show(T t){

       System.out.println(t);

}

public <Q> void print(Q q){

    System.out.println(q);

}

}

主函数中

Demo d=new Demo();

d.show(“haha”);

d.show(new Integer(4));

d.print(“heihei”);

当泛型类和泛型方法混搭使用时,互不干扰,即没用泛型方法的话,就以泛型类为准;有泛型方法就玩自己的

PS:静态方法不可以访问泛型类,但可以使用泛型方法

    public static <W> void method(W w){}

泛型接口:定义泛型后,要在实现接口时,明确数据类型,或者在主函数中new对象时确定

通配符:当自始至终都不确定具体类型时,就用<?>,但就不能使用类型的特有方法了

泛型限定:用于泛型扩展

1.? extends E:可以接收E类型或者其子类型—上限

2.?super E:可以接收E类型或者其父类型—下限

 ----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值