读书人

查寻泛型父类

发布时间: 2013-11-20 12:46:02 作者: rapoo

查找泛型父类
对于泛型父类的查找,有助于base类的建立。

public class Father<T> {
private Class clazz;
public Father() {
this.clazz = null;
Class c = getClass();
Type t = c.getGenericSuperclass();

//getGenericSuperclass 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type
//Type 是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
//ParameterizedType 表示参数化类型
//getActualTypeArguments() 返回表示此类型实际类型参数的 Type 对象的数组。

if (t instanceof ParameterizedType) {
Type[] p = ((ParameterizedType) t).getActualTypeArguments();
this.clazz = (Class<T>) p[0];
System.out.print(p[0]);
}
else{
System.out.println("类型不匹配1...");
}
}
public void save() {
System.out.println("Type为: " + clazz.getSimpleName());
}
}


-----------------

public class Son extends Father<Integer> {

public static void main(String[] args) {
Son userdao=new Son();
userdao.save();
}

}



读书人网 >Web前端

热点推荐