博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的泛型反射
阅读量:5227 次
发布时间:2019-06-14

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

If the superclass is a parameterized type, the {@code Type}     * object returned must accurately reflect the actual type     * parameters used in the source code. T

上文档DOC,如果父类是一个参数化类型,那么Type返回的是参数类型的真实类型

 

package entity;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;/** * Created by Administrator on 2016/11/27 0027. */public class BaseDaoImpl
implements BaseDao
{ public BaseDaoImpl(){ Type type = getClass().getGenericSuperclass(); Type[] params = ((ParameterizedType)type).getActualTypeArguments(); System.out.println((Class
)params[0]); } public T findByid(int id) { return null; }}
package entity;/** * Created by Administrator on 2016/11/27 0027. */public class UserDaoImpl extends BaseDaoImpl
{}
package entity;/** * Created by Administrator on 2016/11/27 0027. */public interface BaseDao
{ public T findByid(int id);}
package entity;import org.junit.Test;/** * Created by Administrator on 2016/11/27 0027. */public class GenericTest {    @Test    public void testGeneric(){        UserDaoImpl baseDao = new UserDaoImpl();        //BaseDaoImpl
baseDao1 = new BaseDaoImpl
(); }}

 

记录总结,只有继承的父类为参数化类型,此时反射的

ParameterizedType 才能拿到参数类型

转载于:https://www.cnblogs.com/winters1992/p/6106457.html

你可能感兴趣的文章
UNIX环境高级编程——线程限制
查看>>
UNIX网络编程——原始套接字SOCK_RAW
查看>>
TCP发送源码学习(1)--tcp_sendmsg
查看>>
使用两个不同类型的数据进行加法计算时,使用异常处理语句捕获由于数据类型错误而出现的异常,发生生成错误。是否继续并运行上次的成功生成?...
查看>>
python-三级菜单和购物车程序
查看>>
web开发灵感推荐--34个有吸引力的电影网站设计灵感
查看>>
sql操作
查看>>
条件断点 符号断点
查看>>
第二十三模板 18.3.5 位集合
查看>>
LEFT JOIN条件写在where里是不会多查出数据来的
查看>>
手把手 学习Git
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
pwershell switch 语句
查看>>
学习Spring Boot:(五)使用 devtools热部署
查看>>
三人行有我师?取长补短?影响力?
查看>>
设计模式——设计模式概述
查看>>
封装一个获取module.exports内容的方法
查看>>
动态连接库
查看>>
ServletContext 与application的异同
查看>>
水平垂直居中
查看>>