java如何声明和使用泛型(2分钟快速搞懂Java)
通配符 T,E,K,V
Java 泛型中的通配符 T , E , K , V , ? 是什么?经常有同学会分不清楚。
本文我们一起来了解下。
送:《泛型最全知识导图》、《大厂泛型面试真题26道》,到本篇结尾处获得~
1 什么是泛型- 泛型是 JDK5 的一个新特性,是把类型明确的工作,推迟到创建对象、或调用方法时才去明确的特殊的类型;
- 泛型的本质是参数化类型,提供了编译时类型安全监测机制,该机制允许我们在编译时检查类型安全,且所有的强制转换都是自动和隐式的,只要编译时不出现问题,运行时就不会出现ClassCastException(类型转换异常),可以极大地提高代码的可读性、复用性及安全性;
- 泛型可以用在类、接口和方法的创建中,被称为泛型类、泛型接口、泛型方法。
关于泛型的介绍,点击蓝字回顾:Java泛型基础最全详解,超级详细 ,这里就不再赘述了。
2 T , E , K , V , ?是什么我们在定义泛型类,泛型方法,泛型接口的时候,经常会看见很多不同的通配符,比较常见的有: T,E,K,V , ? 。
实际上,这些通配符之间没有区别,只是一个约定俗成的字母标识,我们可以使用任意字母(大写)来定义.
例如:
将 T 换成 C
将 E 换成 D
将C换成 A , B , D,E,F,G,H
......等
这不会影响程序运行,只是可读性差一些而已。
通常情况下, T,E,K,V , ? 的类型表示如下:
代码示例:
public class NiuA<T> { public List<T> list = new ArrayList<T>(); public static void main(String[] args) { NiuA<String> na = new NiuA<String>(); na.list.add("hello"); System.out.println(na.list); } } public class NiuB<N> { public List<N> list = new ArrayList<N>(); | public static void main(String[] args) { NiuB<String> nb = new NiuB<String>(); nb.list.add("hello"); System.out.println(nb.list); } }
将 T 换成了N,在执行效果上没有任何区别。
总结以上,是 对Java 泛型中的通配符 T,E,K,V,?的详解。建议大家按照约定俗成的规范编码,以增加代码的可读性。
我是大全哥,持续更新成体系的 Java 核心技术。知识成体系,学习才高效。
如果觉得有帮助,请顺手 点赞 支持下,谢谢。
我们下期见~
附泛型学习资料:
1 《泛型知识全景导图》
快速构建泛型知识体系,高清版本原图,几乎囊括了所有泛型核心知识点。
泛型知识全景导图
2 《大厂泛型面试真题26道》
精选大厂高频泛型面试题,都是我最新整理的,备面、复习时都可以查看。
大厂泛型面试题26道
--- end ---
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com