一、Java泛型
1.1为什么使用泛型
- 今天我们来了解一下泛型的优点与不足。
- 使用泛型,可以使我们不必在进行类型强制转换。
- 简化了我们的代码,但是我们需要考虑用哪一种类型才比较合适
- 让你的程序可读性更加,同时也更加的安全
1.2学会使用泛型
- Java中通常使用变量E表示集合元素类型,K和V分别表示键和值的类型。T表示"任意类型"。
- 这也是泛型入门的基础,学会如何使用泛型。
- 简单定义一个泛型的类
| public class Test1<T> { |
| T age; |
| T first; |
| private T second; |
| public Test1(T age) { |
| this.age = age; |
| } |
| } |
| class B { |
| public static void main(String[] args) { |
| Test1<String> test1 = new Test1<>("13"); |
| Test1<Integer> test2 = new Test1<>(15); |
| } |
| } |
| public <T> T Test2(T age) { |
| return age; |
| } |
| |
1.3泛型的继承
- 如果我们要使用一个接口中的方法,那么我们可以利用泛型的继承来实现
| public static <T extends Comparable> T Test3(T[] a){ |
| |
| |
| } |
- 你可能会好奇,Comparable不是接口吗,为什么要用extends?反正都是这么用的,记住得了。
- 我们可以使用"&"通配符继承多个
<T extends Comparable & List>
我们来讨论一个继承关系:
| public class Father { |
| } |
| |
| class Son extends Father { |
| public static void main(String[] args) { |
| ArrayList<Father> list1 = new ArrayList<>(); |
| ArrayList<Son> list2 = list1; |
| |
| } |
| } |

1.4类型擦除
- 类型擦除就是将我们的Java代码,转换成普通代码。
- 转换成它的顶级父类。
- 了解吧
| |
| public class Test1<T> { |
| T age; |
| T first; |
| |
| Object age; |
| Object first; |
| } |
| |
1.5静态与捕获异常
- 不能再静态字段或方法中引用类型变量。
public static T test();//Error❌
- 不能抛出或者捕获泛型类的实力
二、通配符概念
- 在通配符类型中,允许类型参数发生变化。
Pair<? extends Employee>
表示任何泛型Pair类型,它的类型参数是Employee的子类,如Pair,但不是Pair。这个是继承方面的。
- 通配符的超类型限定:
<? super Manager>
表示为Manager的所有父类。
- 无限定通配符:
Pair<?>
- 额。。。。了解即可吧/(ㄒoㄒ)/~~
三、结尾
- 对于泛型内容就总结这么多,若想深入学习等待后续更新,基础部分掌握这些足矣。如果有不足之处,希望大家多多包涵,多多支持。如果有不懂的地方可以直接私信问我,欢迎来访!
- 我将会继续更新关于Java的学习知识,感兴趣的小伙伴可以关注一下。
- 文章写得比较走心,用了很长时间,绝对不是copy过来的!
- 尊重每一位学习知识的人,同时也尊重每一位分享知识的人。
- 😎你的点赞与关注,是我努力前行的无限动力。🤩
本文作者:lx-Meteor
本文链接:https://www.cnblogs.com/lx-meteor/p/16107541.html
版权声明:本作品采用lx-Meteor许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix