博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中泛型Class<T>、T与Class<?>
阅读量:5904 次
发布时间:2019-06-19

本文共 1516 字,大约阅读时间需要 5 分钟。

一.区别

单独的T 代表一个类型 ,而 Class<T>代表这个类型所对应的类, Class<?>表示类型不确定的类

E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型) ? -  表示不确定的java类型举例说明: Set
表示 集合里 是 T类的实例 List
表示 集合里 是 E类的实例 List
表示 集合里的对象类型不确定,未指定 List 同 List
是一样的。 泛型的作用: 1、用泛型: Java代码 收藏代码List
list=new ArrayList
(); T t=list.get(0); 2、不用泛型: Java代码 收藏代码List list=new ArrayList(); T t=(T)list.get(0);

二、如何创建一个Class<T>类型的实例?

      就像使用非泛型代码一样,有两种方式:调用方法 Class.forName() 或者使用类常量X.class。      Class.forName() 被定义为返 回 Class<?>。另一方面,类常量 X.class 被定义为具有类型 Class<X>,所 以 String.class 是Class<String> 类型的。

三、方法中为什么需要<T> T修饰呢

泛型的声明,必须在方法的修饰符(public,static,final,abstract等)之后,返回值声明之前。

public static 
T request2Bean(HttpServletRequest request,Class
clazz){}

其中第一个<T>是与传入的参数Class<T>相对应的,相当于返回值的一个泛型,后面的T是返回值类型,代表方法必须返回T类型的(由传入的Class<T>决定)

另外,附上我的一段Java代码:

private JsonResult getBase(String model, Class
cls){ JsonResult jsonResult = new JsonResult(); String json = ""; try { json = C4IUtils.Search(null, model, 0); } catch (Exception e) { jsonResult.setCode(500); jsonResult.setMsg(e.getMessage()); return jsonResult; } List
list = JsonUtil.str2list(json, cls); jsonResult.setCode(200); jsonResult.setMsg("查询成功!"); jsonResult.setData(list); return jsonResult;}

 

转载于:https://www.cnblogs.com/wpcnblog/p/9242465.html

你可能感兴趣的文章
Linux学习之CentOS(八)--Linux系统的分区概念
查看>>
System.Func<>与System.Action<>
查看>>
asp.net开源CMS推荐
查看>>
csharp skype send message in winform
查看>>
MMORPG 游戏服务器端设计--转载
查看>>
HDFS dfsclient写文件过程 源码分析
查看>>
ubuntu下安装libxml2
查看>>
nginx_lua_waf安装测试
查看>>
WinForm窗体缩放动画
查看>>
JQuery入门(2)
查看>>
linux文件描述符
查看>>
传值引用和调用引用的区别
查看>>
hyper-v 无线网连接
查看>>
Python3.7.1学习(六)RabbitMQ在Windows环境下的安装
查看>>
Windows下memcached的安装配置
查看>>
ubuntu: firefox+flashplay
查看>>
web.xml 中CharacterEncodingFilter类的学习
查看>>
贪吃蛇逻辑代码
查看>>
ASP.NET视频教程 手把手教你做企业论坛网站 视频教程
查看>>
[LeetCode] Meeting Rooms II
查看>>