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
在使用MyBatis时遇到InvalidBoundStatement异常,常因多个MapperScan配置冲突或者包扫描路径设置错误,解决方法包括保留一个MapperScan声明、检查jar包冲突、确保命名空间和扫描路径正确,使用@TableId注解指定主键2024-11-11
Spring Boot 启动失败:循环依赖排查到懒加载配置的过程解析
本文我将从一个真实的生产环境故障案例出发,带你深入了解Spring Boot循环依赖的检测机制、排查方法和解决方案,通过系统性分析和实战演练帮助掌握如何在复杂的应用中处理循环依赖,感兴趣的朋友跟随小编一起看看吧2025-08-08
Spring AI 实现 STDIO和SSE MCP Server的过
STDIO方式是基于进程间通信,MCP Client和MCP Server运行在同一主机,主要用于本地集成、命令行工具等场景,这篇文章主要介绍了Spring AI 实现 STDIO和SSE MCP Server,需要的朋友可以参考下2025-05-05


最新评论