Java之如何获取泛型参数

 更新时间:2024年09月19日 10:34:42   作者:赚够壹仟万  
在Java开发中,获取泛型参数一般有两种方法:第一种是通过JDK自带的API,主要利用反射机制来获取类的泛型信息;第二种方法是借助Spring框架提供的GenericTypeResolver工具类,这种方式更加简便,这两种方法都能有效地帮助开发者在运行时获取到泛型参数

Java获取泛型参数

对于一个基本的类

public class BaseDao<T>{
    T findOne() {
        return T;
    }
}

它的子类

public class StudentDao extends BaseDao<StudentDao.Student>{

    public static class Student{
    }

}

如何获得当前类对应的泛型参数呢?

方法一 JDK

public static void main(String[] args) throws Exception {
    // 可以拿到带有泛型信息的父类
    Type genericSuperclass = StudentDao.class.getGenericSuperclass();
    // 这里要判断一手如果你的父类确实有泛型信息
    if (genericSuperclass instanceof ParameterizedType parameterizedType) {
        Type[] typeArguments = parameterizedType.getActualTypeArguments();
        System.out.println(typeArguments[0]);
    }
}

方法二 spring提供的方式

通过GenericTypeResolver获得.

public static void main(String[] args) throws Exception {
   Class<?> t = GenericTypeResolver.resolveTypeArgument(StudentDao.class, BaseDao.class);
   System.out.println(t);
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决mybatis plus报错Invalid bound statement (not found):问题

    解决mybatis plus报错Invalid bound statement 

    在使用MyBatis时遇到InvalidBoundStatement异常,常因多个MapperScan配置冲突或者包扫描路径设置错误,解决方法包括保留一个MapperScan声明、检查jar包冲突、确保命名空间和扫描路径正确,使用@TableId注解指定主键
    2024-11-11
  • Spring Boot 启动失败:循环依赖排查到懒加载配置的过程解析

    Spring Boot 启动失败:循环依赖排查到懒加载配置的过程解析

    本文我将从一个真实的生产环境故障案例出发,带你深入了解Spring Boot循环依赖的检测机制、排查方法和解决方案,通过系统性分析和实战演练帮助掌握如何在复杂的应用中处理循环依赖,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • jdk自带定时器使用方法详解

    jdk自带定时器使用方法详解

    这篇文章主要为大家详细介绍了jdk自带定时器的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • mybatis-plus乐观锁实现方式详解

    mybatis-plus乐观锁实现方式详解

    这篇文章主要介绍了mybatis-plus乐观锁实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • SpringBoot中使用 RabbitMQ的教程详解

    SpringBoot中使用 RabbitMQ的教程详解

    这篇文章主要介绍了SpringBoot中使用 RabbitMQ的教程详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • MyBatis批量添加数据2种实现方法

    MyBatis批量添加数据2种实现方法

    这篇文章主要介绍了MyBatis批量添加数据2种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • java调用短信猫发短信示例

    java调用短信猫发短信示例

    这篇文章主要介绍了java调用短信猫发短信示例,需要的朋友可以参考下
    2014-04-04
  • redis分布式锁的原理及代码实例

    redis分布式锁的原理及代码实例

    这篇文章主要介绍了redis分布式锁的原理及代码实例,Redis作为一款高性能内存数据库,其提供了一种非常实用的分布式锁解决方案,可以帮助开发人员轻松地实现分布式锁功能,对于分布式系统的开发和维护,具有非常大的实用价值,需要的朋友可以参考下
    2024-01-01
  • Java集合的组内平均值的计算方法总结

    Java集合的组内平均值的计算方法总结

    在Java中,经常需要对集合进行各种操作,其中之一就是计算集合的组内平均值,本文将介绍如何使用Java集合来计算组内平均值,并提供一些示例代码和实用技巧
    2024-08-08
  • Spring AI 实现 STDIO和SSE MCP Server的过程详解

    Spring AI 实现 STDIO和SSE MCP Server的过

    STDIO方式是基于进程间通信,MCP Client和MCP Server运行在同一主机,主要用于本地集成、命令行工具等场景,这篇文章主要介绍了Spring AI 实现 STDIO和SSE MCP Server,需要的朋友可以参考下
    2025-05-05

最新评论