`

ParameterizedType获取java泛型参数类型

 
阅读更多
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对象了..
分享到:
评论

相关推荐

    Java如何获取泛型类型

    Java 运行时如何获取泛型参数的类型 Java类型Type 之 ParameterizedType,GenericArrayType,TypeVariabl,WildcardType 从实现的接口获取泛型参数 定义一个泛型父类: public interface SuperClass { String ...

    JAVA泛型总结

    java 泛型详解 实例 class Point class Notepad,V>{ // 此处指定了...通配符、受限泛型、泛型无法向上转型、泛型接口、泛型方法、通过泛型方法返回泛型类型实例、使用泛型统一传入的参数类型、泛型数组、泛型的嵌套设置

    Java泛型与类型擦除

    “编译器会进行泛型擦除”是一个常识了(好吧,实际擦除的是参数和自变量的类型)。这个过程由“类型擦除”实现。但是并非像许多开发者认为的那样,在 <..> 符号内的东西都被擦除了。看下面这段代码: public ...

    面试必须资料java泛型攻略、

    Generics可以称之为参数类型(parameterized types),由编译器来验证从客户端将一种类型传送给某一对象的机制。如Java.util.ArrayList, 编译器可以用Generics来保证类型安全。 在我们深入了解Generics之前,我们先来看...

    谈谈Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType

    主要介绍Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType的相关资料,需要的朋友可以参考下

    basedao的封装

    //获得当前类型的带有泛型类型的父类... ParameterizedType ptClass = (ParameterizedType) this.getClass().getGenericSuperclass(); //获得运行期的泛型类型 clazz = (Class) ptClass.getActualTypeArguments()[0];

    JDK 1.5的泛型實現(Generics in JDK 1.5)

    閱讀本文之前,如果自覺基礎不夠,可以補充閱讀適才提到的《Java泛型技術之 發展》,那是一篇非常完整的文章,可助您完整認識泛型技術的來龍去脈。 Sun JDK的泛型發展歷史要從 1.3版說起。該版本配合 GJ,正式...

    Parameterized Algorithms

    Parameterized Algorithms

    lambda-parameterized:借助lambda表达式进行类型安全的参数化JUnit测试的概念验证

    您不能依靠编译器来检查生成的参数的类型与构造函数的参数的类型或注入字段的类型是否兼容。 这是因为生成参数的方法与其目标之间只有通过注释的间接链接。 借助Java 8,无需创建大量样板代码即可创建直接链接的...

    Parameterized Trigger Plugin 2.25

    Parameterized Trigger Plugin 2.25 hpi

    Parameterized Controller,

    Parameterized Controller,

    AutoParams:Java中用于参数化测试的任意测试数据生成器

    < artifactId>autoparams</ artifactId> < version>0.0.1</ version></ dependency>GradletestImplementation ' io.github.javaunit:autoparams:0.0.1 '特征生成原始类型的任意测试数据@ParameterizedTest@...

    Parameterized Complexity

    計算輪相關,一本非常好的借鑒教程,有需要請下載

    Parameterized Algorithms(英文版)

    简介:这本全面的教科书介绍了参数化算法中大多数基本工具和技术的清晰连贯的说明,是该领域的独立指南。本书涵盖了该领域的许多最新发展,包括重要分离器的应用,基于线性规划的分支,Cut&Count以获得更快的树分解...

    Rethinking Style Transfer From Pixels to Parameterized Brush

    Rethinking Style Transfer From Pixels to Parameterized Brushstrokes 重新思考从像素到参数化笔触的风格转换

    Parameterized Trigger Plugin 2.24 hpi

    How to install Run mvn clean package to create the plugin .hpi file. To install: 1. copy the resulting ./target/credentials.hpi file to the $JENKINS_HOME/plugins directory....

    parameterized:使用任何Python测试框架进行参数化测试

    使用任何Python测试框架进行参数化测试 Python中的参数化测试很烂。 parameterized可修复该问题。 为了一切。 鼻子的参数化测试,py.test的参数化测试,单元测试的参数化测试。 # test_math.pyfrom nose . tools ...

    Generic Programming for Scientific Computing in C++, Java, and C#

    (论文)Abstract:Parameterized types (generics) have been announced for the JavaTM and C# programming languages. In this paper, we evaluate these extensions with respect to the realm of scientific ...

    HibernateCommonDAO

    private Class<T> entityClass; public HibernateCommonDAO() { Type type = getClass().... Type[] types = ((ParameterizedType) type).getActualTypeArguments(); entityClass = (Class)types[0]; } }

Global site tag (gtag.js) - Google Analytics