获取泛型类中的泛型参数的类型
2014-09-23 03:07
281 查看
泛型类只是定义了一个泛型,还没有传递一个类型给这个泛型,所以他是一个空的占位符而已。
如果要实实在在的得到这个泛型的类型,那就必须传递一个东西给他。
所以获取泛型类型,有两种方式,一种通过参数传递,一种通过子类继承的方式传递。
publci class Dao<T> {
private
Class<T> clazz;
//第一种方式,无参数的方式,也就是通过子类继承的方式,把子类传递给父类
// Dao<Student> dao = new StudentDao();
public Dao(){
Type type = this.getClass().getGenericSuperclass();
if (type
instanceof ParameterizedType) {
ParameterizedType paramType = (ParameterizedType) type;
Type[] args
= paramType.getActualTypeArguments();
if (args != null && args.length>0) {
Type
arg = args[0];
if (arg
instanceof Class) {
this.clazz= (Class<T>)
arg;
// System.out.println(this.clazz);
}
}
}
}
//第二种方式,通过参数传递
// Dao<Student> dao = new Dao<>(Student.class);
public Dao(Class<T> clazz) {
this.clazz = clazz;
// System.out.println (this.clazz) ; //输出 Student
}
}
--------------------------------------
public class StudentDao extends Dao<Student>
{
public StudnetDao(){ }
}
如果要实实在在的得到这个泛型的类型,那就必须传递一个东西给他。
所以获取泛型类型,有两种方式,一种通过参数传递,一种通过子类继承的方式传递。
publci class Dao<T> {
private
Class<T> clazz;
//第一种方式,无参数的方式,也就是通过子类继承的方式,把子类传递给父类
// Dao<Student> dao = new StudentDao();
public Dao(){
Type type = this.getClass().getGenericSuperclass();
if (type
instanceof ParameterizedType) {
ParameterizedType paramType = (ParameterizedType) type;
Type[] args
= paramType.getActualTypeArguments();
if (args != null && args.length>0) {
Type
arg = args[0];
if (arg
instanceof Class) {
this.clazz= (Class<T>)
arg;
// System.out.println(this.clazz);
}
}
}
}
//第二种方式,通过参数传递
// Dao<Student> dao = new Dao<>(Student.class);
public Dao(Class<T> clazz) {
this.clazz = clazz;
// System.out.println (this.clazz) ; //输出 Student
}
}
--------------------------------------
public class StudentDao extends Dao<Student>
{
public StudnetDao(){ }
}
相关文章推荐
- 从泛型类中获取子类的泛型参数的类型
- 黑马程序员-通过反射获取泛型参数类型
- 泛型类里面获取到泛型的类型
- java中获取泛型参数类型
- java获取泛型参数实际类型
- Gson通过借助TypeToken获取泛型参数的类型的方法
- 获取泛型参数的泛型类型
- java取得泛型的参数类型(Gson通过借助TypeToken获取泛型参数的类型的方法)
- Gson通过借助TypeToken获取泛型参数的类型的方法
- ParameterizedType获取java泛型参数类型
- 跳过编译器,获取泛型参数的实际类型
- 通过反射获取泛型参数类型
- ParameterizedType获取java泛型参数类型
- 黑马程序员:泛型的高级介绍及通过反射获取实际类型参数
- Gson通过借助TypeToken获取泛型参数的类型的方法
- 跳过编译器,获取泛型参数的实际类型
- Java获取泛型参数的类型的方法 .
- Gson通过借助TypeToken获取泛型参数的类型的方法
- 通过反射获取泛型的参数类型信息
- 利用java反射获取泛型类的类型参数具体类对象