Java项目实战反射工具类
2012-09-23 13:42
351 查看
package com.utils;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class ReflectUtils {
/**
* 获得超类的参数类型,取第一个参数类型
* @param <T> 类型参数
* @param clazz 超类类型
*/
public static <T> Class<T> getClassGenricType(final Class clazz) {
return getClassGenricType(clazz, 0);
}
/**
* 根据索引获得超类的参数类型
* @param clazz 超类类型
* @param index 索引
*/
public static Class getClassGenricType(final Class clazz, final int index) {
Type genType = clazz.getGenericSuperclass();
if (!(genType instanceof ParameterizedType)) {
return Object.class;
}
Type[] params = ((ParameterizedType)genType).getActualTypeArguments();
if (index >= params.length || index < 0) {
return Object.class;
}
if (!(params[index] instanceof Class)) {
return Object.class;
}
return (Class) params[index];
}
}
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class ReflectUtils {
/**
* 获得超类的参数类型,取第一个参数类型
* @param <T> 类型参数
* @param clazz 超类类型
*/
public static <T> Class<T> getClassGenricType(final Class clazz) {
return getClassGenricType(clazz, 0);
}
/**
* 根据索引获得超类的参数类型
* @param clazz 超类类型
* @param index 索引
*/
public static Class getClassGenricType(final Class clazz, final int index) {
Type genType = clazz.getGenericSuperclass();
if (!(genType instanceof ParameterizedType)) {
return Object.class;
}
Type[] params = ((ParameterizedType)genType).getActualTypeArguments();
if (index >= params.length || index < 0) {
return Object.class;
}
if (!(params[index] instanceof Class)) {
return Object.class;
}
return (Class) params[index];
}
}
相关文章推荐
- 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第五节)
- Java成语接龙游戏小项目实战
- Java调用python项目实战
- 【java项目实战】Servlet详解以及Servlet编写登陆页面(二)
- 13.1-全栈Java笔记:打飞机游戏实战项目|AWT|MyGameFrame
- Java Class与反射相关的一些工具类
- 【java】itoo项目实战之减少IO读写的导入思路
- 【java项目实战】代理模式(Proxy Pattern),静态代理 VS 动态代理
- Java培训实战教程之CKEditor+CKFinder整合项目开发文本编辑器功能
- NDK探究之旅《十一》—C代码调用Java代码之项目实战
- 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (作者:剽悍一小兔)第六节学习随笔
- 七、java项目常用工具类之json序列号工具类
- 五、java项目常用工具类之properties提取数据工具类
- Java Drp项目实战—— 环境搭建
- Android中java反射(Reflection)实战
- 北风课堂分享java项目实战系列视频教程
- 13.7-全栈Java笔记:打飞机游戏实战项目|Rectangle|intersects|Plane
- Java Spring boot 企业微信点餐系统 项目实战视频教程
- Java 项目优化实战
- 【SSH网上商城项目实战25】使用java email给用户发送邮件