废话不多说,把下面这个方法跑一下,就OK了,参数是子类Class,返回值是子类继承父类时给父类传入的泛型参数,该方法假定父类只有一个泛型参数,否则抛出异常。
public static Class getGenericSuperclassBounds(Class childClass){
Type type = childClass.getGenericSuperclass();
while(!(type instanceof Class)){
if(type instanceof WildcardType){
type = ((WildcardType)type).getUpperBounds()[0];
}
else if(type instanceof TypeVariable<?>){
type = ((TypeVariable<?>)type).getBounds()[0];
}
else if(type instanceof ParameterizedType){
ParameterizedType ptype = (ParameterizedType)type;
Type[] types = ptype.getActualTypeArguments();
if(types==null||types.length==0){
return Object.class;
}
if(types.length>1){
throw new RuntimeException(childClass.getName()+"继承的泛型"+ptype+"的实参数量多于1个");
}
type = ptype.getActualTypeArguments()[0];
}
else if(type instanceof GenericArrayType ){
type = ((GenericArrayType)type).getGenericComponentType();
}
}
return (Class)type;
}
分享到:
相关推荐
在本文里我们给大家分享一篇关于Python 子类继承父类构造函数的相关知识点内容,需要的朋友们跟着学习下。
一个泛型子类继承一个泛型父类时,子类泛型参数传值给父类泛型参数 Son--Father 4; 定义子类时子类泛型参数给定占位符,同时父类泛型参数可以赋值 public class Son,Y>:Father,string> 5:一个泛型子类继承一个...
java反射获取所有属性,获取所有get方法,包括子类父类,以及包括List集合类
java 子类对象赋值给父类对象的使用,包括代码及详解,个人笔记
JAVA 子类继承父类范例,2个子类继承同一个父类,完整代码,下载粘贴到project中可以直接运行
java中的继承(子类调用父类构造方法还不懂).doc
主要介绍了java子类继承父类实例-披萨的选择实现代码,具有一定借鉴价值,需要的朋友可以参考下。
有关子类和父类。A是子类,Teacher是父类。A是Teacher 的一种(子类)会继承父类李非私
WPF继承_子类继承父类,实现跨类调用方法
java子类重写父类的方法.doc
Java的子类调用父类的构造方法.pdf
主要介绍了Java编程关于子类重写父类方法问题的理解,分享了有关子类重写父类的实例,具有一定参考价值,需要的朋友可以了解下。
在本篇文章里小编给大家整理的是关于java判断class子类或父类的实例方法,需要的朋友们可以参考学习下。
java的反射机制操作父类的所有属性和方法。
java训练题目 编写程序实现子类对父类构造方法的引用?
论JAVA继承机制中父类与子类的关系
利用C#反射将子类舍弃多余的属性转换为父类,用途比较少。
今天小编就为大家分享一篇关于Java中关于子类覆盖父类的抛出异常问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
继承父类后,就能调用父类方法和访问父类属性,而要完成整个集成过程,子类是需要调用的构造函数的。 子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题 如果子类和父类都有构造函数,...