前言:
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。
泛型带来的好处:
在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是本身就是一个安全隐患。
那么泛型的好处就是在编译的时候能够检查类型安全,并且所有的强制转换都是自动和隐式的。
泛型中通配符:
我们在定义泛型类,泛型方法,泛型接口的时候经常会碰见很多不同的通配符,比如 T,E,K,V 等等,这些通配符又都是什么意思呢?
常用的 T,E,K,V,?
本质上这些个都是通配符,没啥区别,只不过是编码时的一种约定俗成的东西。比如上述代码中的 T ,我们可以换成 A-Z 之间的任何一个 字母都可以,并不会影响程序的正常运行,但是如果换成其他的字母代替 T ,在可读性上可能会弱一些。通常情况下,T,E,K,V,?是这样约定的:
-
?表示不确定的 java 类型
-
T (type) 表示具体的一个java类型
-
K V (key value) 分别代表java键值中的Key Value
-
E (element)
Java泛型提供编译时类型安全检测,避免强制类型转换的安全隐患。通配符如T, E, K, V, ?用于表示不同类型。T代表一个具体的类型,E常用于元素,K和V代表键值对中的Key和Value,?是无界通配符,表示不确定的类型。它们的区别在于使用场景,T用于泛型类和方法定义,?用于不确定类型的调用,而Object是所有类的父类,可能需要强制转换。"
131906361,7587095,F5 LTM SNAT配置与流量处理详解,"['网络', '负载均衡']
订阅专栏 解锁全文
3392

被折叠的 条评论
为什么被折叠?



