当前位置: 首页 > 科技观察

三分钟学会Java泛型T、E、K、V、?

时间:2023-03-18 16:22:10 科技观察

泛型的含义是Java中非常重要的内容。是Java进阶学习必须掌握的知识点。这个知识点之所以重要,是因为如果你看过一些开源框架的代码,那么你肯定会看到源码中很多地方都使用了泛型。随便举两个例子,一个List和一个Map。看完上面的源码,我们简单说一下泛型,也就是复习一下泛型的相关知识,来自百度百科。[泛型是JavaSE1.5的新特性。泛型的本质是参数化类型,也就是说将被操作的数据类型指定为参数。这种参数类型可用于创建类、接口和方法,分别称为泛型类、泛型接口和泛型方法。Java语言引入泛型的好处是安全、简单。在JavaSE1.5之前,在没有泛型的情况下,参数的“任意”是通过引用Object类型来实现的。“任意”的缺点是需要显式强制类型转换,而这种转换是在需要开发者预测实际参数类型时进行的。对于强制类型转换错误的情况,编译器可能不会提示错误,只会在运行时出现异常,存在安全隐患。泛型的优点是在编译时检查类型安全,所有的转换都是自动和隐式的,以提高代码重用。】请大致记住上段中标的内容,如果记不住可以背。让我们来看看这些T、E、K、V、?这些神圣在哪里?其实这些都是java泛型通配符。如果一开始看到这么多通配符,你可能会觉得可以喝一壶。这几封其实并没有什么区别,只不过是一封约定好的信件而已。不要害怕。其实你也可以用大写字母A,B,C,D...X,Y,Z来定义,都是泛型的,把T换成A也是一样的,这里的T只是名字。E-Element(用在集合中,因为元素保存在集合中),E是限制每个方法中的泛型类型,保证同一个对象调用不同方法时,操作的类型必须相同,E可以换成任何其他字母。T-Type(Java类),T代表调用时指定的类型,会进行类型推断。K-Key(键)V-Value(值)N-Number(数字类型)?-表示不确定的java类型,是代表所有类型的类型通配符。?不能进行类型推断,简单举个例子:把T换成N,执行效果没有区别,但是我们约定了T代表类型,还是按照约定的规范来做,增加代码的可读性。泛型类定义//跟在类名publicclassTest{}泛型方法定义//紧跟修饰符(public)publicTTest1(Tt){}?通配符使用//UseList用于变量赋值或变量声明list;ListuNumberList;ListintgerList;注意:List和列表?列表可以接受任何继承自T的类型List,List可以接受由T的父类形成的任何列表。例如List可以接受List或List