java泛型的理解
2022/1/19 22:20:37
本文主要是介绍java泛型的理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
泛型的意思是说类型可以在以后指定,但是这仍然需要告诉编译器,我需要某个类型作为占位符,比如T
public List<T> fuck(T shit){ 。。。 }
然后编译器并不知道这个T是什么
所以需要在前面显示的声明一下(这就是为什么不能省略)
是申明T为泛型,以区别于类名。
public <T> List<T> fuck(T shit){ ... }
共出现了三个T
- 第一个是定义一个范型名为T来声明类型参数的,也可以为任何一个或多个字母
- 后两个T是泛型的实现,都是在使用范型
- 第二个T代表返回T类型变量
- 第三个T是只接受T类型变量的可变参数(可变参数:一个或者多个,其实最后会被转化成数组)
public class A { 案例1. public static <A> List<A> asList(A... a); 案例2. public static List<A> asList(A... a); }
- 案例1中A为“泛型A”,参数可以传入任何类型对象的数组;
- 案例2则不是,其中A为“类A”,参数只能传入“类A”的对象的数组。
案例1中使用泛型绝不是因为要使参数可以传入任意类型,如果仅仅是这样,直接用Object就可以了。
用泛型是因为可以使该方法的返回值成为一个指定类型的集合,这样再次使用该集合的时候就有一个明确的类型了,这使的在将来该类型发生改变的时候编译器会报错,提醒你做相应的修改,而不是让问题暴露在运行阶段。这是泛型的重要作用之一。
‘T’ 其实就是某class,而’<>'符号纯粹是一个标记符,因为返回类型不确定(可能有object,string,int等)所以使用 T泛型代替了,只有在你调用的时候才能确定你想要返回的具体类型
个人博客:wgzz.top
个人公众号:后端开发充电宝
欢迎关注
这篇关于java泛型的理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南