泛型 T 获取

原创 2016年08月30日 15:32:19

学了好长时间的Java ,对于Class.class 还是理解的不够透彻,网上的好多例子都是不能执行的;
╮(╯▽╰)╭
所以,直接上代码

public class DaoImpl<T,K> {
    public DaoImpl() {
        getGenericClass();
    }

    private void getGenericClass() {
        ParameterizedType pt = (ParameterizedType) getClass().getGenericSuperclass();
        Arrays.asList(pt.getActualTypeArguments()).forEach(type->System.out.println((Class)type));
    }
}

这个类是重点,如果直接实例DaoImpl 或报错java.lang.ClassCastException

public class UserDaomImpl extends DaoImpl<Stu,Model,Stu>{
}
public class Stu {

}
class Model{

}

测试

public class Main {
    public static void main(String[] args) {
        new UserDaomImpl ();
    }
}

更多文章请移步:> http://blog.csdn.net/norwaya007

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

泛型T的类型获取

T.getClass()或者T.class都是非法的,因为T是泛型变量。 由于一个类的类型是什么是在编译期处理的,故不能在运行时直接在Base里得到T的实际类型。 /** *@aut...

泛型<T>的类型获取

T.getClass()或者T.class都是非法的,因为T是泛型变量。由于一个类的类型是什么,是在编译期处理的,故不能在运行时直接在Base里得到T的实际类型。 /** *@author zhan...

BaseDAO开发及获取泛型的传输数据类型(Class<T>)实例讲解

一般在涉及DAO开发时,常用到的增删改查方法会封装到一个基类(BaseDAO),对于各个数据表的基本维护业务都需要用到增删改查等方法。 若对每张表都编写一套增删改差方法未必有些麻烦,并且不符合编码的基...
  • hjd1622
  • hjd1622
  • 2016年05月17日 15:04
  • 1190

如何获取继承类中的泛型T的类型

首先, T.getClass() 或 T.class都是非法的,因为T是泛型变量; 由于一个类的类型在编译期已确定,故不能在运行期得到T的实际类型; 获取方式如下: abstract class A ...

Java5泛型的用法,T.class的获取和为擦拭法站台

Java 5的泛型语法已经有太多书讲了,这里不再打字贴书。GP一定有用,不然Java和C#不会约好了似的同时开始支持GP。但大家也清楚,GP和Ruby式的动态OO语言属于不同的意识形态,如果是一人一票...

java泛型T.class的获取

很早之前写过利用泛型和反射机制抽象DAO ,对其中获取子类泛型的class一直不是很理解。关键的地方是HibernateBaseDao的构造方法中的 [java] view ...

java泛型T.class的获取

很早之前写过利用泛型和反射机制抽象DAO ,对其中获取子类泛型的class一直不是很理解。关键的地方是HibernateBaseDao的构造方法中的 [java] view pl...

Java5泛型的用法,T.class的获取

1.先定义接口(这里写的比较简单就一个方法,具体可以再增加) public interface BaseDao {        T get(String id);   } 2.定义抽象类实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:泛型 T 获取
举报原因:
原因补充:

(最多只允许输入30个字)