博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中泛型得到T.class
阅读量:6796 次
发布时间:2019-06-26

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

例子:

public class Test
{ public Class
getTClass() { return (Class
) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; } public void test() { System.out.println(getTClass()); } public static void main(String s[]) { (new Test
() {}).test(); // class java.lang.String }}

注意:

1、使用时必须在new出的方法中使用匿名内部类,不然获取不到,比如:new Test<User>() {},后面带了大括号的表示为匿名内部类。

2、这个方式适合在本类中实现,如果是继承+反射的方式,那么有如下实现:

// com.jsoft.test.GT2
public class GT1 extends GT2
{ public static void main(String[] args) { System.out.println(((ParameterizedType)new GT1().getClass().getGenericSuperclass()).getActualTypeArguments()[0]); } } // 2 class java.lang.Integerpublic class GT1 extends GT2
{ public static void main(String[] args) { System.out.println(((ParameterizedType)new GT1().getClass().getGenericSuperclass())); } }

3、而江南白衣文中()的实现是放在超类中的,最精华的一句:

Class
entityClass = (Class
) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];

 

参考:

==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==

转载地址:http://pzlgo.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
lduan Exchange 2013 策略功能(十二)
查看>>
centos6 连接数修改
查看>>
java.security.InvalidKeyException: Illegal key size or default parameters
查看>>
Oracle10gR2 on SuSE9 x86_86安装技术文档(原版英文)
查看>>
LAMP编译安装(续)
查看>>
翻译 - NodeJS错误处理最佳实践
查看>>
Linux下卸载mysql
查看>>
sudo 详解、用户以及组的创建删除。
查看>>
微信小程序组件化开发框架-Labrador (二)
查看>>
Linux自动化运维之Cobbler(自定义重装)NO.2
查看>>
Apache中 RewriteCond 规则参数介绍
查看>>
解析xml
查看>>
python+selenium 对于iframe的切入切出
查看>>
开源协议特点@02
查看>>
构建squid传统代理和透明代理
查看>>
linux文件管理命令
查看>>
day19 监听器&过滤器
查看>>
Linux命令nohup+screen
查看>>
心灵鸡汤若干,不喜勿入
查看>>