`
i2534
  • 浏览: 179562 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取子类的泛型参数

    博客分类:
  • util
DAO 
阅读更多

用的时候不好找,今天看nutz的dao的源码看到了,摘出来备份

	public static Type[] getTypeParams(Class<?> klass) {
		if (klass == null || "java.lang.Object".equals(klass.getName()))
			return null;
		// 看看父类
		Type superclass = klass.getGenericSuperclass();
		if (null != superclass && superclass instanceof ParameterizedType)
			return ((ParameterizedType) superclass).getActualTypeArguments();

		// 看看接口
		Type[] interfaces = klass.getGenericInterfaces();
		for (Type inf : interfaces) {
			if (inf instanceof ParameterizedType) {
				return ((ParameterizedType) inf).getActualTypeArguments();
			}
		}
		return getTypeParams(klass.getSuperclass());
	}

 只能查找有父类或者实现了接口的类,否则返回null.

ps:看来基础api还有很多不懂啊.

分享到:
评论

相关推荐

    java中获取泛型类的子类

    通过反射获得指定类的父类的泛型参数的实际类型

    反射处理java泛型

    当我们声明了一个泛型的接口或类,或需要一个子类继承至这个泛型类,而我们又希望利用反射获取这些泛型参数信息。这是本文将要介绍的ReflectionUtil是为了解决这类问题的辅助工具类,为java.lang.reflect标准库的...

    反射与泛型

    详细演示Java编程中通过子类获取传入父类DAO的泛型参数,并通过反射创建对象,并对其原理进行深度剖析

    Java开发热门常问面试题目资料解答合集40个资料左右.zip

    答:泛型是Java中引入的一个概念,可以用来定义类、方法和接口,使其可以接受任意类型的参数。泛型的作用是增强类型的安全和可读性。 Java中的多态是什么,有什么作用? 答:多态是Java中的一个重要概念,指的是同...

    \java超强笔记(超级经典)

    泛型类不能是异常类,也就是该泛型类不能继承自Throwable以及其子类 public class MyExpection&lt;T&gt; extends Exception{ } //编译错误 可以抛出(throws)泛型类,但catch的参数不能是泛型类。 注意:...

    Java开发技术大全(500个源代码).

    getLinePara.java 获取命令行参数示例 hasStaticMethod.java 静态成员方法示例 hasStatMember.java 静态成员变量示例 HelloNative.c 用C写的一个小程序 HelloNative.dll 用C生成的DLL文件 HelloNative.exp 用...

    疯狂JAVA讲义

    学生提问:既然内部类是外部类的成员,是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类? 211 6.7.4 局部内部类 211 6.7.5 匿名内部类 212 6.7.6 闭包(Closure)和回调 215 6.8 ...

    Java开发技术大全 电子版

    10.3带两个类型参数的泛型类308 10.4有界类型309 10.5通配符参数311 10.6泛型方法313 10.7泛型接口315 10.8泛型类的继承317 10.8.1以泛型类为父类317 10.8.2以非泛型类为父类319 10.8.3运行时类型识别320 ...

    快学 scala 中文版 带完整目录

    4.2 获取映射中的值 54 4.3 更新映射中的值 55 4.4 迭代映射 56 4.5 已排序映射 57 4.6 与Java的互操作 57 4.7 元组 58 4.8 拉链操作 59 练习 60 第5章 类 A1 63 5.1 简单类和无参方法 63 5.2 带getter和...

    asp.net知识库

    泛型技巧系列:如何提供类型参数之间的转换 C#2.0 - Object Pool 简单实现 Attributes in C# 手痒痒,也来个c# 2.0 object pool 泛型技巧系列:用泛型打造可复用的抽象工厂 体验.net2.0的优雅(四):Provider、策略...

    Hibernate实战(第2版 中文高清版)

     5.1.4 每个子类一张表   5.1.5 混合继承策略   5.1.6 选择策略   5.2 Hibernate类型系统   5.2.1 概述实体和值类型   5.2.2 内建的映射类型   5.2.3 使用映射类型   5.3 创建定制的映射类型   ...

    java常用工具类的使用

    SimpleDateFormat是DateFormat的子类,用法和DateFormat类基本一致,主要使用format()方法。 代码演示:SimpleDateFormat进行日期转换 import java.text.SimpleDateFormat; import java.util.Date; public class ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    9.2.2 获取字符串中的一部分 222 9.2.3 判断两个字符串是否相等 223 9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    9.2.2 获取字符串中的一部分 222 9.2.3 判断两个字符串是否相等 223 9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 ...

Global site tag (gtag.js) - Google Analytics