获取类的泛型类型
第一种方法:
public class ParameterDesc<T> {
private final String _name;
private Class<T> _type;
public ParameterDesc(String name){
this._name = name;
}
public String getName(){
return _name;
}
@SuppressWarnings("unchecked")
public Class<T> getType(){
if(null == _type){
TypeVariable[] tvs = getClass().getTypeParameters();
Type tp = tvs[0].getBounds()[0];
_type = (Class<T>)tp;
}
return _type;
}
}
第二种方法:
abstract class ParameterDesc<T> {
@SuppressWarnings("unchecked")
public Class<T> getType() {
Type type = getClass().getGenericSuperclass();
if (type instanceof ParameterizedType) {
ParameterizedType pType = (ParameterizedType) type;
return (Class<T>) pType.getActualTypeArguments()[0];
} else {
return null;
}
}
}
分享到:
相关推荐
Java 运行时如何获取泛型参数的类型 Java类型Type 之 ParameterizedType,GenericArrayType,TypeVariabl,WildcardType 从实现的接口获取泛型参数 定义一个泛型父类: public interface SuperClass { String ...
介绍获取方法的参数和返回值类型(包括Type和Class)获取泛型参数类型(包括对象的泛型参数或集合元素的泛型类型)方法首先我们定义一个类:public cla
通过反射获得指定类的父类的泛型参数的实际类型
主要介绍了Spring 中优雅的获取泛型信息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了Java 获取泛型的类型实现代码的相关资料,需要的朋友可以参考下
本示例展示了使用工厂方法设计模式,利用反射,通过泛型接口获取具体类型的列表。比如,要返回一张表的数据,通常使用List<具体表名>,本示例源码展示了通过类型参数传递表名,使用List的形式返回具体的表数据
获取泛型参数的实际类型}//获取此类的父类的第一个泛型参数的实际类型对应于实际的类型PayResultHandler,其父类HPWallletCallBackH
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
Java8新特性之泛型的目标类型推断_动力节点Java学院,动力节点口口相传的Java黄埔军校
本文主要介绍了Java泛型的使用以及类型擦除相关的问题。具有很好的参考价值。下面跟着小编一起来看下吧
反射工具类,用来访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数
泛型工具类,用于dao的超类,获取实体类的类型。
它提供了便捷的访问泛型对象类型(java.reflect.Type)的反射方法。 本文假设你已经了解java反射知识,并能熟练的应用。如果还不了解java反射知识,那么你可以先移步到Oracel反射课程,这可能是你开始学习反射的好...
c#使用枚举高性能去除泛型中重复数据1KW只需要3秒
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也...
在工厂模式下以通过接口结合列表、泛型和反射等方式实现指定类型的实例化操作
泛型学习笔记2的源代码,泛型...典型的应用就是在集合中, 集合中理论上可以保存任意对象,实际上我们应该让它泛型化,集合类<元素类型>, 添加元素只能添加指定类型,获取元素时一定能获取指定类型的对象,不需要造型。
这段代码实现了一个简单的银行账户类BankAccount,其中使用了Java泛型来支持不同类型的账户。在类的构造方法中,使用了一个类型参数T表示账户的余额类型,可以是Integer或Double。在deposit()和withdraw()方法中,...
泛型接口的实现与非泛型接口的实现的方式相似,免费下载,欢迎支持,正在做 C# 的各集合类型的内部实现,你的支持是我的动力, 谢谢