栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

泛型标记符含义

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

泛型标记符含义

Java泛型中的标记符含义:

本质上这些个都是通配符,没啥区别,只不过是编码时的一种约定俗成的东西。比如上述代码中的 T ,我们可以换成 A-Z 之间的任何一个 字母都可以,并不会影响程序的正常运行,但是如果换成其他的字母代替 T ,在可读性上可能会弱一些。通常情况下,T,E,K,V,? 是这样约定的:

E - Element (在集合中使用,因为集合中存放的是元素)T - Type(Java 类),T代表在调用时的指定类型。会进行类型推断。声明泛型类或泛型方法。K - Key(键)V - Value(值)N - Number(数值类型)? - 表示不确定的java类型,是类型通配符,代表所有类型。?不会进行类型推断。使用泛型类或泛型方法

泛型类定义

// 紧跟类名后面
public class Test{}

泛型方法定义

//紧跟修饰符后面(public),并且返回类型为T
public T Test1(T t){}
//紧跟关键字后面(static)
public static boolean isOrNot(T t){}

?通配符使用 

// 变量赋值或变量声明时候使用
List list;
List uNumberList;
List intgerList;

注:List和List 有什么区别

List可以接受任何继承自T的类型的List,List可以接受任何T的父类构成的List。例如List可以接受List或List

 ? 和 T 的区别

// 指定集合元素只能是 T 类型
List list = new ArrayList();
// 集合元素可以是任意类型,这种没有意义,一般是方法中,只是为了说明用法
List list = new ArrayList();

?和 T 都表示不确定的类型,区别在于我们可以对 T 进行操作,但是对 ? 不行,比如如下这种 : 

// 可以
T t = operate();
// 不可以
? car = operate();
// 不可以
isOrNot(Map);
public static boolean isOrNot(Map map){
return map.get("String");
}

简单总结下:

T 是一个 确定的 类型,通常用于泛型类和泛型方法的定义,?是一个 不确定 的类型,通常用于泛型方法的调用代码和形参,不能用于定义类和泛型方法。

好文来源:链接:https://juejin.cn/post/6844903917835419661

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号