- 浏览: 128838 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 709eclipse java代码格式化 javaformatter ... -
List to Map
2015-01-21 17:22 481/** * <p>将List变为Map</p ... -
读取access工具类-ReadAccessUtil2
2015-01-06 13:52 548import com.healthmarketscience. ... -
分页帮助类-oracle-java
2014-10-09 17:46 456/** * 分页帮助类 * * @author ver ... -
java自动实例化List AutoArrayList
2014-07-21 15:51 735import java.util.ArrayList; p ... -
单一登录过滤器
2014-06-20 17:13 396/** * 单一登录过滤器 * * @author v ... -
正则 java 查找 打印 所有匹配项
2014-06-18 11:26 636package com.test.regex; import ... -
第3方包读取Access
2014-05-26 16:07 661package com.test; import java. ... -
多线程加签验签例子.zip
2014-05-26 16:08 508多线程加签验签例子.zip -
DateTimeUtils
2014-05-26 16:08 646import java.text.DateFormat; im ... -
listToMap
2014-05-26 16:09 435/** * List实用类 * * @author v ... -
JdbcTemplateRowMapper
2015-05-19 15:44 573import java.lang.reflect.Constr ... -
KeyValuePair2
2015-05-19 15:44 504/** * 键值对 * * @author verno ... -
OrderUtil -排序工具
2014-05-22 09:35 652/** * 排序工具 * * @author vern ... -
ZipUtils
2014-05-22 09:35 441import java.io.BufferedOutputSt ... -
TimerUtils
2014-05-22 09:34 476import org.slf4j.Logger; import ... -
Excel View 4 Spring
2014-05-22 09:29 337Excel View 4 Spring @RequestMa ... -
DOMUtils xml操作实用类
2014-04-07 21:41 802/* * Copyright 2001-2004 The A ... -
生成验证码 数学+字母
2014-04-01 10:08 437public static String getCharAnd ... -
ConnUtils2程序耗时输出 oracle.sql.Clob类型转换成String类型
2014-03-29 10:00 678package 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`。 - 如果类型检查通过,方法会继续提取实际的类型参数数组,并根据...
在上面的代码中,我们使用 `getClass().getGenericSuperclass()` 方法获取当前类的父类,然后使用 `ParameterizedType` 对象获取泛型类型参数。最后,我们使用 `clazz.newInstance()` 方法实例化泛型对象。 完整...
在运行结果中,我们可以看到,使用getType()方法只是获取到了字段score的类型是java.util.Map,但是使用ParameterizedType对象可以获取到字段score的泛型参数是String和Integer。 通过这个实例,我们可以看到,使用...
这种类型参数化的ArrayList被称为参数化类型(Parameterized Type)。 在实际应用中,泛型最常见的用途包括: 1. 使用迭代器迭代泛型集合中的元素,如示例中的`test2()`方法所示,通过`Iterator<Integer> it = list...
例如,可以通过`ParameterizedType`获取泛型类的实际类型参数。 #### 总结 Java泛型为编程提供了极大的灵活性和类型安全性。通过对泛型类、泛型接口以及泛型方法的学习,我们可以更好地利用泛型的强大功能来编写...
虽然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....
`ParameterizedType`提供了一个方法`getActualTypeArguments()`,用于获取参数化类型的实际类型参数。例如,在`methodIV`方法的参数列表中,`ArrayList[]`的`getActualTypeArguments()`会返回`ArrayList<String>`,...
我们可以使用 Java 的反射机制来获取 Class 对象中的泛型信息。下面是一个示例代码: ```java public static Class<?> getClassGenericType(final Class<?> clazz, final int index) { Type genType = clazz....
`如果泛型是List,则可以通过检查其是否为ParameterizedType并获取实际类型参数。 7. Java 8的新特性: - 默认方法:Java 8引入了接口的默认方法,反射也可以调用这些方法。 - 方法引用和构造器引用:这使得反射...
在Java中,泛型信息在编译后会被擦除,因此无法直接从运行时的Class对象获取泛型参数。但是,我们可以通过类的Type接口或者ParameterizedType接口来获取泛型信息。例如,如果我们有一个子类继承自DAO,我们可以通过...
`ParameterizedType` 接口表示参数化的类型,它有一个重要的方法 `getActualTypeArguments()`,用于获取实际的类型参数。这些类型参数可以是具体的类、接口,或者是其他泛型类型的实例。如果类型参数是通配符(如 `?...
5. **ParameterizedType**: 表示参数化的类型,如泛型类或接口。 #### 三、代码解析 接下来,我们将对给定的代码片段进行详细的分析: ##### 1. 泛型工具类 `GenericsUtils` 该类提供了一系列用于处理泛型的方法...
在Java中,可以使用`ParameterizedType`接口来获取带泛型的类或方法的参数类型。例如,如果你有一个泛型方法`public <T> void printList(List<T> list)`,你可以通过`method.getGenericReturnType()`获取到`...
在某些场景下,可以通过反射获取泛型的实际类型,如 `(ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]`,但这通常不是常规操作,因为泛型信息在运行时已经被擦除,这种做法的...