zoukankan      html  css  js  c++  java
  • 泛型反射

    泛型概述:通用的类型

    <>:  typeof

    <T>:T,叫做参数类型变量

    <String> : String ,实际类型参数

    List<String> :整体叫做 参数化类型 

    获取实现的接口或继承的类上的参数化类型的API:

    1. Type[] getGenericInterfaces(); :获得带有泛型的接口,可以实现多个接口。
    2. Type getGenericSuperclass(); :获得带有泛型的父类,继承一个类。

    在设置通用Dao时:

    方法一:

    private Class clazz;
    	//通过泛型反射来获取参数化类型中的实际类型参数
    	public BaseDaoImp() {
    		//1,获取继承该类的类的class
    		Class<? extends BaseDaoImp> clazz = this.getClass();
    		//2,获取调用类继承的父类上的参数化类型
    		Type type = clazz.getGenericSuperclass();
    		//3,将type强转为参数化类型
    		ParameterizedType pType=(ParameterizedType) type;
    		//4,获取参数化类型上的实际类型参数,可能有多个
    		Type[] types = pType.getActualTypeArguments();
    		//5,获取第一个
    		this.clazz=(Class) types[0];
    	}

    方法二:设置有参构造,但需要在子类中也要编写构造方法(不推荐)

    作者:wuba
    出处:http://www.cnblogs.com/wuba/
    版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。转载请注明出处!
  • 相关阅读:
    静态网页
    css
    html
    数据分析器
    初步了解计算机
    如何导出数据库的数据词典
    阅读计划
    python之文件读写
    曾梦想仗剑走天涯,看世界的繁华
    python lambda匿名函数
  • 原文地址:https://www.cnblogs.com/wuba/p/11025489.html
Copyright © 2011-2022 走看看