如何取得java泛型里的类型
发布网友
发布时间:2022-04-30 01:57
我来回答
共1个回答
热心网友
时间:2022-06-28 14:23
子父类的方式获取泛型,刚刚写的代码,参考一下。
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
/**
*
* 开发公司:SOJSON在线工具 <p>
* 版权所有:© www.sojson.com
* 博客地址:http://www.sojson.com/blog/
* <p>
*
* 注释写这里
*
* <p>
*
* 区分 责任人 日期 说明<br/>
* 创建 周柏成 2017年4月13日 09:49 <br/>
*
* @author zhou-cheng
* @email so@sojson.com
* @version 1.0,2017年4月13日 09:49 <br/>
*
*/
public class Demo2<T,M> {
/**
* 这里是子类,写在一个文件里,方便调用,static修饰是为了和当前类同级
* @author Administrator
*
*/
static class SunDemo extends Demo2<SunDemo,Demo2>{
}
public Demo2() {
Type type = getClass().getGenericSuperclass();
if (type instanceof ParameterizedType) {
Type[] entityClass = ((ParameterizedType) type).getActualTypeArguments();
System.out.println("获取的泛型类型:");
for (Type t : entityClass) {
Class clazz = (Class)t;
System.out.println(clazz.getCanonicalName());
}
}
}
/**
* 通过实例化子类,父类获取。
* @param args
*/
public static void main(String[] args) {
new SunDemo();
}
}