- 浏览: 131975 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (165)
- 数据库 (45)
- 架构 (0)
- java web前端+框架 (9)
- java web后端+框架 (56)
- Eclipse插件 (1)
- 解题思路 (2)
- Eclipse (2)
- linux (6)
- jquery (4)
- 正则 (3)
- jsp (1)
- javascript (8)
- oracle (39)
- 生活 (1)
- weblogic (5)
- tomcat (3)
- Jrebel (1)
- powerdesigner (1)
- svn (1)
- log4j (1)
- IDE (1)
- POI (2)
- jvm (2)
- ssh (1)
- http (1)
- notepad++ (2)
- 润乾 (1)
- 设计模式 (0)
- 实用类Utils (2)
- 算法 (1)
- xml (1)
- 实用类 (2)
最新评论
ParameterizedType获取java泛型参数类型
getClass().getGenericSuperclass()返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type
然后将其转换ParameterizedType。。
getActualTypeArguments()返回表示此类型实际类型参数的 Type 对象的数组。
[0]就是这个数组中第一个了。。
简而言之就是获得超类的泛型参数的实际类型。。
比如
超类
public class GenericDAO {
private Class entityClass;
protected GenericDAO() {
Type type = getClass().getGenericSuperclass();
Type trueType = ((ParameterizedType) type).getActualTypeArguments()[0];
this.entityClass = (Class) trueType;
}
}
子类
public class OptionManager extends GenericDAO {
}
测试类
public class OracleTest {
public static void main(String[] args) throws Exception {
OptionManager manager = new OptionManager();
}
}
这样在你new OptionManager();以后
超类里的entityClass就是子类那里的public class OptionManager extends GenericDAO 里面的MSGC_OPTION所对应的class对象了..
getClass().getGenericSuperclass()返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type
然后将其转换ParameterizedType。。
getActualTypeArguments()返回表示此类型实际类型参数的 Type 对象的数组。
[0]就是这个数组中第一个了。。
简而言之就是获得超类的泛型参数的实际类型。。
比如
超类
public class GenericDAO {
private Class entityClass;
protected GenericDAO() {
Type type = getClass().getGenericSuperclass();
Type trueType = ((ParameterizedType) type).getActualTypeArguments()[0];
this.entityClass = (Class) trueType;
}
}
子类
public class OptionManager extends GenericDAO {
}
测试类
public class OracleTest {
public static void main(String[] args) throws Exception {
OptionManager manager = new OptionManager();
}
}
这样在你new OptionManager();以后
超类里的entityClass就是子类那里的public class OptionManager extends GenericDAO 里面的MSGC_OPTION所对应的class对象了..
发表评论
-
eclipse java代码格式化 javaformatter20150123.zip
2015-01-23 11:30 719eclipse java代码格式化 javaformatter ... -
List to Map
2015-01-21 17:22 499/** * <p>将List变为Map</p ... -
读取access工具类-ReadAccessUtil2
2015-01-06 13:52 559import com.healthmarketscience. ... -
分页帮助类-oracle-java
2014-10-09 17:46 468/** * 分页帮助类 * * @author ver ... -
java自动实例化List AutoArrayList
2014-07-21 15:51 750import java.util.ArrayList; p ... -
单一登录过滤器
2014-06-20 17:13 402/** * 单一登录过滤器 * * @author v ... -
正则 java 查找 打印 所有匹配项
2014-06-18 11:26 657package com.test.regex; import ... -
第3方包读取Access
2014-05-26 16:07 683package com.test; import java. ... -
多线程加签验签例子.zip
2014-05-26 16:08 522多线程加签验签例子.zip -
DateTimeUtils
2014-05-26 16:08 660import java.text.DateFormat; im ... -
listToMap
2014-05-26 16:09 445/** * List实用类 * * @author v ... -
JdbcTemplateRowMapper
2015-05-19 15:44 588import java.lang.reflect.Constr ... -
KeyValuePair2
2015-05-19 15:44 521/** * 键值对 * * @author verno ... -
OrderUtil -排序工具
2014-05-22 09:35 679/** * 排序工具 * * @author vern ... -
ZipUtils
2014-05-22 09:35 459import java.io.BufferedOutputSt ... -
TimerUtils
2014-05-22 09:34 487import org.slf4j.Logger; import ... -
Excel View 4 Spring
2014-05-22 09:29 348Excel View 4 Spring @RequestMa ... -
DOMUtils xml操作实用类
2014-04-07 21:41 811/* * Copyright 2001-2004 The A ... -
生成验证码 数学+字母
2014-04-01 10:08 448public static String getCharAnd ... -
ConnUtils2程序耗时输出 oracle.sql.Clob类型转换成String类型
2014-03-29 10:00 687package com.achievo.ems.web.ser ...
相关推荐
Java类型Type 之 ParameterizedType,GenericArrayType,TypeVariabl,WildcardType 从实现的接口获取泛型参数 定义一个泛型父类: public interface SuperClass { String process(P p); } 实现类1: public class...
Java泛型是Java编程语言中的一种重要特性,它允许开发者在编写代码时指定类型参数,从而提高代码的灵活性和可读性。本文将详细介绍Java泛型的用法 及T.class的获取过程解析。 一、泛型的基本概念 泛型是Java 5中...
通过反射API,可以通过`ParameterizedType`接口来获取泛型类的类型参数,例如: ```java public class Base<T> { private Class<T> entityClass; } Class<?> rawType = Base.class; Type type = rawType....
总结来说,`ReflectionUtil`工具类提供了一种方便的方式来处理Java泛型和反射操作,包括从`Type`获取`Class`对象,创建对象实例,以及获取泛型参数类型等。在实际开发中,正确、安全地使用反射对于提高代码的灵活性...
- 接着,方法会检查获取到的类型是否为`ParameterizedType`类型,这是Java泛型体系中表示参数化类型的接口。如果不是,则同样返回`Object.class`。 - 如果类型检查通过,方法会继续提取实际的类型参数数组,并根据...
如果字段是泛型类型,通过`ParameterizedType`接口获得其泛型参数列表,并根据需要获取第一个泛型参数。如果字段不是泛型类型,直接返回字段的类型,这可能需要在使用时考虑类型擦除的影响。 需要注意的是,如果...
在上面的代码中,我们使用 `getClass().getGenericSuperclass()` 方法获取当前类的父类,然后使用 `ParameterizedType` 对象获取泛型类型参数。最后,我们使用 `clazz.newInstance()` 方法实例化泛型对象。 完整...
在运行结果中,我们可以看到,使用getType()方法只是获取到了字段score的类型是java.util.Map,但是使用ParameterizedType对象可以获取到字段score的泛型参数是String和Integer。 通过这个实例,我们可以看到,使用...
- **处理泛型类型**:如果类型`Type`实例是`ParameterizedType`,则可以通过`ParameterizedType`接口获取泛型参数的类型。例如,`List<Integer>`中`List`就是一个参数化类型,而`Integer`是它的实际类型参数。 - *...
这种类型参数化的ArrayList被称为参数化类型(Parameterized Type)。 在实际应用中,泛型最常见的用途包括: 1. 使用迭代器迭代泛型集合中的元素,如示例中的`test2()`方法所示,通过`Iterator<Integer> it = list...
类泛型工具类通过Java反射机制中的ParameterizedType类来获取父类的泛型参数类型。它提供了getGenericType静态方法,能够根据传入的类对象和泛型序号值返回指定顺序的泛型类型。此方法首先判断传入的类对象是否为空...
例如,可以通过`ParameterizedType`获取泛型类的实际类型参数。 #### 总结 Java泛型为编程提供了极大的灵活性和类型安全性。通过对泛型类、泛型接口以及泛型方法的学习,我们可以更好地利用泛型的强大功能来编写...
`ParameterizedType`提供了一个方法`getActualTypeArguments()`,用于获取参数化类型的实际类型参数。例如,在`methodIV`方法的参数列表中,`ArrayList[]`的`getActualTypeArguments()`会返回`ArrayList<String>`,...
虽然Java泛型在运行时会被擦除,无法直接获取到类型参数的实际类型(即`T.class`),但可以通过反射机制获取到类型信息。下面是一个典型的例子: ```java public abstract class BaseHibernateEntityDao<T> extends...
我们不能直接获取`myList`的泛型类型`T`,但我们可以通过以下方式获取其实际类型参数: ```java Field field = Class.forName("my.package.ParentClass").getDeclaredField("myList"); Type genericType = field....
我们可以使用 Java 的反射机制来获取 Class 对象中的泛型信息。下面是一个示例代码: ```java public static Class<?> getClassGenericType(final Class<?> clazz, final int index) { Type genType = clazz....
它利用了Java反射API中的`ParameterizedType`、`Type`、`Method`、`Field`、`GenericArrayType`和`TypeVariable`等类,来获取和处理泛型类的实际类型参数。`typeArgumentsCache`、`typeVariablesCache`和`...
`如果泛型是List,则可以通过检查其是否为ParameterizedType并获取实际类型参数。 7. Java 8的新特性: - 默认方法:Java 8引入了接口的默认方法,反射也可以调用这些方法。 - 方法引用和构造器引用:这使得反射...
在Java中,泛型信息在编译后会被擦除,因此无法直接从运行时的Class对象获取泛型参数。但是,我们可以通过类的Type接口或者ParameterizedType接口来获取泛型信息。例如,如果我们有一个子类继承自DAO,我们可以通过...