首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Spring boot中的泛型参数(与任何类无关)中获取值

从Spring Boot中的泛型参数中获取值,可以使用Java的反射机制来实现。下面是一个可能的实现方式:

代码语言:txt
复制
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class GenericParameterDemo<T> {

    public Class<?> getGenericType() {
        Type type = getClass().getGenericSuperclass();
        ParameterizedType parameterizedType = (ParameterizedType) type;
        Type[] typeArguments = parameterizedType.getActualTypeArguments();
        
        if (typeArguments.length > 0) {
            return (Class<?>) typeArguments[0];
        }
        
        return null;
    }

    public static void main(String[] args) {
        GenericParameterDemo<String> demo = new GenericParameterDemo<>();
        Class<?> genericType = demo.getGenericType();
        
        if (genericType != null) {
            System.out.println("Generic type: " + genericType.getName());
        } else {
            System.out.println("No generic type found.");
        }
    }
}

这段代码定义了一个泛型参数类GenericParameterDemo<T>,通过调用getGenericType()方法可以获取泛型参数的实际类型。在main()方法中创建了一个GenericParameterDemo<String>的实例,然后通过getGenericType()方法获取泛型参数的类型。

在Spring Boot中使用这个方式,可以将该代码段嵌入到需要获取泛型参数值的地方,并根据实际情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 工程师成神之路 | 2019正式版

继承实现 构造函数默认构造函数 变量、成员变量和局部变量 成员变量和方法作用域 02 Java 基础知识 → 基本数据类型 8 种基本数据类型:整型、浮点、布尔、字符 整型 byte...、short、int、long 取值范围 什么是浮点?....*、 javax.management.* → 继承、类型擦除、 KTVE?...、、自动装箱拆箱、方法变长参数、枚举、内部类、条件编译、 断言、数值字面量、for-each、try-with-resource、Lambda 表达式 03 阅读源代码 String、Integer...四种依赖注入方式 → Spring MVC 什么是 MVC Spring mvc Struts mvc 区别 → Spring Boot Spring Boot 2.0、起步依赖、自动配置、 Spring

1.4K50

2019年Java工程师成神之路正式版

1 基础篇 01 面向对象 → 什么是面向对象 面向对象、面向过程 面向对象三大基本特征和五大基本原则 → 平台无关性 Java 如何实现平台无关 JVM 还支持哪些语言(Kotlin、Groovy...变量、成员变量和局部变量 成员变量和方法作用域 02 Java 基础知识 → 基本数据类型 8 种基本数据类型:整型、浮点、布尔、字符 整型 byte、short、int、long 取值范围....*、 javax.management.* → 继承、类型擦除、 KTVE?...、、自动装箱拆箱、方法变长参数、枚举、内部类、条件编译、 断言、数值字面量、for-each、try-with-resource、Lambda 表达式 03 阅读源代码 String、Integer...四种依赖注入方式 → Spring MVC 什么是 MVC Spring mvc Struts mvc 区别 → Spring Boot Spring Boot 2.0、起步依赖、自动配置、 Spring

87310

请不要再使用判断进行参数校验了

前言 因为网络传输不可靠性,以及前端数据控制可篡改性,后端参数校验是必须,应用程序必须通过某种手段来确保输入进来数据语义上来讲是正确。 2....数据校验痛点 为了保证数据语义正确,我们需要进行大量判断来处理验证逻辑。而且项目的分层也会造成一些重复校验,产生大量业务无关代码。不利于代码维护,增加了开发人员工作量。 3....接口来定义一个颜色约束了,其中A为自定义约束注解,T为入参类型,这里使用字符串,然后我们实现如下: /** * @author felord.cn...不信你可以试一试,起码在Spring Boot 2.3.1.RELEASE是不会直接生效。 使以上两种生效方法是在上添加@Validated注解。注意一定要添加到方法所在上才行。...集合类型参数元素不生效问题 就像下面的写法,方法参数为集合时,如何检验元素约束呢? /** * 集合类型参数元素.

1K30

是时候使用Kotlin编程了

2, 存在主要是为了消除模板代码和类型转换安全, 在Kotlin使用基本Java是一致。...在Java是不变,比如:虽然A继承B,但List和List之间没有任何关系,Java是通过通配符来实现: 3,反射 反射是运行于JVM程序检测和修改运行时一种行为,通过反射可以在运行时获取对象属性和方法...对象复制 7.1.2 序列化 7.1.3 成员解构 7.2 密封 7.3 小结 第8章 集合 8.1集合 8.1.1 集 8.1.2 列表 8.1.3 映射 8.2 8.2.1 基础...8.2.2 变 8.2.3 声明处变 8.2.4 类型投影 8.2.5 星号投影 8.2.6 型函数 8.2.7 约束 8.3 小结 第9章 对象委托 9.1 对象 9.1.1 对象表达式...Kotlin NativeOC互操作 16.4 小结 第17章 使用KotlinSpring Boot开发服务端 17.1 Spring Boot环境搭建 17.1.1 Spring Boot简介

3.2K10

【JavaSE专栏19】谈谈和枚举那些事

---- 一、Java Java 是一种在编译时指定类型机制,它可以在、接口或方法中使用类型参数,从而使得代码能够处理多种数据类型,并在编译期间进行类型检查以保证类型安全。...我们定义了一个 GenericClass,通过 在名后声明了一个类型参数。...该类包含一个字段和相应 getter 和 setter 方法。在 Main main 方法,我们分别创建了一个存放整数和字符串对象,并演示了如何获取和设置其数据。...三、和枚举区别和使用场景 3.1 区别 和枚举是两种在编程中常用概念。 是一种允许在定义、方法或接口时使用参数化类型机制。...---- 是一种参数类型机制,能够在代码处理不同类型数据;而枚举是一种特定数据类型,用于表示一组固定取值

12820

Spring Boot 配置文件怎么造?

今天这篇文章就来介绍一下Spring Boot配置文件语法以及如何配置文件取值。...该注解中有一个属性prefix,用于指定配置前缀,毕竟配置文件属性很多,也有很多重名,必须用一个前缀来区分下。 该注解可以标注在上也可以标注在方法上,这也注定了它有两种获取值方式。...标注在配置方法上,同样是配置文件取值赋值到返回值属性。...Spring Boot在启动时候会自动加载application.xxx和bootsrap.xxx,但是为了区分,有时候需要自定义一个配置文件,那么如何自定义配置文件取值呢?...总结 以上内容介绍了Spring Boot配置文件语法以及如何配置文件取值,这个内容很重要,作者也是尽可能讲通俗易懂,希望读者能够有所收获。

18641

spring,springBoot事件

Spring应用上下文停止事件 ContextClosedEvent Spring应用上下文关闭事件 允许事件自定义,如果有兴趣可以参看: org.springframework.context.PayloadApplicationEvent...实现ApplicationListener接口 或 @EventListener,可监听1到多种事件,支持事件 2....表@EventListener同步异步区别 方法类型 访问修饰符 返回类型 参数数量 参数类型 备注 同步 public 任意类型 0或1 监听事件类型或其子类 会将返回值作为事件向后传播 异步 public...ListenerCacheKey为eventType(对应或者事件本身) 和sourceType(ApplicationEvent构造器source),(对应ApplicationEvent...ListenerCacheKey为eventType(对应或者事件本身) 和sourceType(ApplicationEvent构造器source) 4.

90511

第12章 元编程注解、反射第12章 元编程注解、反射

第12章 元编程注解、反射 反射(Reflection)是在运行时获取函数(方法)、属性、父、接口、注解元数据、信息等内部信息机制。...本章介绍 Kotlin 注解反射编程相关内容。 12.1 元编程简介 说到元编程(Meta-programming),我们 Meta- 这个前缀开始说起。...把注解使用淋漓尽致 Spring Boot 框架,基本不需要一行XML配置,几乎全部使用注解就搞定一个 Spring 企业级应用开发。 “XML vs....而当这个继承了一个父,父中有信息,那么我们可以通过调用getGenericSuperclass()方法得到父信息。...所以,通过反射能拿到也只能是有继承父信息子类

99620

SpringBoot面试题大汇总附答案,SpringBoot面试题-持续更新「建议收藏」

XXXProperties命名去加载全局配置属性,如server.port,而XXXProperties通过@ConfigurationProperties注解将全局配置文件属性自己属性进行绑定...1、 properties文件 2、YAML文件 3、系统环境变量 4、命令行参数 3、spring boot初始化环境变量流程?...由于配置被定义为JavaConfig,因此用户可以充分利用Java面向对象功能。一个配置可以继承另一个,重写它@Bean方法等。 减少或消除XML配置。...技术角度来讲,只使用JavaConfig配置来配置容器是可行,但实际上很多人认为将JavaConfigXML混合匹配是理想。 类型安全和重构友好。...由于Java 5.0对支持,现在可以按类型而不是按名称检索bean,不需要任何强制转换或基于字符串查找 9、运行 SpringBoot 有哪几种方式?

2.1K30

Spring注解反射

,请求主体参数是通过HttpMessageConverter传递,根据请求主体参数对象属性名进行匹配并绑定值。...概念上来讲,自定义加载器一般指的是程序由开发人员自定义,加载器。 但是Java虚拟机规范却没有这么定义,而是将所有派生于抽象ClassLoader加载器都划分为自定义加载器。...Java 采用擦除机制来引入,Java 仅仅是给编译器 javac 使用,目的是确保数据安全性以及免去强制类型转换问题。...在Java可以通过反射获取信息场景有如下三个: (1)成员变量 (2)方法参数 (3)方法返回值 在Java不可以通过反射获取信息场景有如下两个: (1)或接口声明...(2)局部变量 要获取信息,必须要注意ParameterizedType,该类getActualTypeArguments()方法可以有效获取信息。

68910

SpringBoot面试题及答案140道(2021年最新)

技术角度来讲,只使用 JavaConfig 配置来配置容器是可行,但实际上很多人认为将JavaConfig XML 混合匹配是理想。3、 类型安全和重构友好。...JavaConfig 提供了一种类型安全方法来配置 Spring容器。由于 Java 5.0 对支持,现在可以按类型而不是按名称检索 bean,不需要任何强制转换或基于字符串查找。...技术角度来讲,只使用 JavaConfig 配置来配置容器是可行,但实际上很多人认为将JavaConfig XML 混合匹配是理想。 3、 类型安全和重构友好。...JavaConfig 提供了一种类型安全方法来配置 Spring容器。由于 Java 5.0 对支持,现在可以按类型而不是按名称检索 bean,不需要任何强制转换或基于字符串查找。...1、 @Cacheable ,用来声明方法是可缓存,将结果存储到缓存以便后续使用相同参数调用时不需执行实际方法,直接从缓存取值

1.5K30

零到一搭建基础架构(3)-base模块搭建上篇

第一篇:零到一搭建基础架构(1)-玩转maven依赖版本管理 第二篇:零到一搭建基础架构(2)-如何构建基础架构模块划分 相信你们在日常开发过程中一定遇到过以下问题 前后端交互结构混乱,response...业务code定义没有一个统一规范 PO、DTO、BO、VO傻傻分不清楚 工具泛滥,同一工程StringUtil引用有外部引入,有内部jar包引入还有自己定义 异常定义混乱,导致在Spring...实现 三、如何正确划分数据载体 实体作为数据载体,大家日常工作绝对会接触到,但是你真的正确使用了吗?...层,这里我习惯方法出参,用于切合DTOVO层结构差异 Query 查询参数,controller层方法入参,接收前端查询类型参数 Command 指令性参数,例如用户新增,用户修改数据载体...我对DTOVO理解是他们是结果数据,是业务逻辑处理后产物。而Command是指令性数据,通过Command类型参数,经由BO层业务逻辑,将数据映射到PO层数据库交互。

41250

这 10 道 Spring Boot 常见面试题你需要了解下

由于配置被定义为JavaConfig,因此用户可以充分利用Java面向对象功能。一个配置可以继承另一个,重写它@Bean方法等。 减少或消除XML配置。...技术角度来讲,只使用JavaConfig配置来配置容器是可行,但实际上很多人认为将JavaConfigXML混合匹配是理想。 类型安全和重构友好。...JavaConfig提供了一种类型安全方法来配置Spring容器。由于Java 5.0对支持,现在可以按类型而不是按名称检索bean,不需要任何强制转换或基于字符串查找。...4.如何重新加载Spring Boot更改,而无需重新启动服务器? 这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。...它只需要很少代码。配置将必须扩展WebSecurityConfigurerAdapter并覆盖其方法。 9.如何集成Spring Boot和ActiveMQ?

1.3K20

这 10 道 Spring Boot 常见面试题你需要了解下

由于配置被定义为JavaConfig,因此用户可以充分利用Java面向对象功能。一个配置可以继承另一个,重写它@Bean方法等。 减少或消除XML配置。...技术角度来讲,只使用JavaConfig配置来配置容器是可行,但实际上很多人认为将JavaConfigXML混合匹配是理想。 类型安全和重构友好。...JavaConfig提供了一种类型安全方法来配置Spring容器。由于Java 5.0对支持,现在可以按类型而不是按名称检索bean,不需要任何强制转换或基于字符串查找。...4.如何重新加载Spring Boot更改,而无需重新启动服务器? 这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。...它只需要很少代码。配置将必须扩展WebSecurityConfigurerAdapter并覆盖其方法。 9.如何集成Spring Boot和ActiveMQ?

98520

springboot面试题十题

由于配置被定义为JavaConfig,因此用户可以充分利用Java面向对象功能。一个配置可以继承另一个,重写它@Bean方法等。 减少或消除XML配置。...技术角度来讲,只使用JavaConfig配置来配置容器是可行,但实际上很多人认为将JavaConfigXML混合匹配是理想。 类型安全和重构友好。...JavaConfig提供了一种类型安全方法来配置Spring容器。由于Java 5.0对支持,现在可以按类型而不是按名称检索bean,不需要任何强制转换或基于字符串查找。...4.如何重新加载Spring Boot更改,而无需重新启动服务器? 这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。...它只需要很少代码。配置将必须扩展WebSecurityConfigurerAdapter并覆盖其方法。 9.如何集成Spring Boot和ActiveMQ?

1.6K20

Java工程师成神之路(2018版本)

、对象存活判定 JVM参数及调优 Java对象模型 oop-klass、对象头 HotSpot 即时编译器、编译优化 加载机制 classLoader、加载过程、双亲委派(破坏双亲委派)、模块化(...区别、Java 8stream相关用法、apache集合处理工具使用、不同版本JDKHashMap实现区别以及原因 枚举 枚举用法、枚举单例、Enum Java IO&Java NIO... 继承、类型擦除、K T V E ?...object等含义、各种用法 单元测试 junit、mock、mockito、内存数据库(h2) 正则表达式 java.lang.util.regex.* 常用Java工具库 commons.lang...AOP原理 自己实现SpringIOC Spring MVC Spring Boot2.0 Spring Bootstarter原理,自己实现一个starter Spring Security 2.5

66820

java 成神之路

、对象存活判定 JVM参数及调优 Java对象模型 oop-klass、对象头 HotSpot 即时编译器、编译优化 加载机制 classLoader、加载过程、双亲委派(破坏双亲委派)、模块化...区别、Java 8 stream相关用法、apache 集合处理工具使用、不同版本 JDK HashMap 实现区别以及原因 枚举 枚举用法、枚举单例、Enum Java... 继承、类型擦除、 K T V E ?...object 等含义、各种用法 单元测试 junit、mock、mockito、内存数据库(h2) 正则表达式 java.lang.util.regex.* 常用Java工具库 commons.lang...Spring AOP原理 自己实现 Spring IOC Spring MVC Spring Boot2.0 Spring Boot starter 原理,自己实现一个starter

1.8K40
领券