当前位置: 代码迷 >> Web前端 >> 查寻泛型父类
  详细解决方案

查寻泛型父类

热度:350   发布时间:2013-11-20 12:46:02.0
查找泛型父类
对于泛型父类的查找,有助于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();
}

}



  相关解决方案