Java之如何獲取泛型參數(shù)
更新時間:2024年09月19日 10:34:42 作者:賺夠壹仟萬
在Java開發(fā)中,獲取泛型參數(shù)一般有兩種方法:第一種是通過JDK自帶的API,主要利用反射機制來獲取類的泛型信息;第二種方法是借助Spring框架提供的GenericTypeResolver工具類,這種方式更加簡便,這兩種方法都能有效地幫助開發(fā)者在運行時獲取到泛型參數(shù)
Java獲取泛型參數(shù)
對于一個基本的類
public class BaseDao<T>{
T findOne() {
return T;
}
}它的子類
public class StudentDao extends BaseDao<StudentDao.Student>{
public static class Student{
}
}如何獲得當(dāng)前類對應(yīng)的泛型參數(shù)呢?
方法一 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);
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決mybatis plus報錯Invalid bound statement
在使用MyBatis時遇到InvalidBoundStatement異常,常因多個MapperScan配置沖突或者包掃描路徑設(shè)置錯誤,解決方法包括保留一個MapperScan聲明、檢查jar包沖突、確保命名空間和掃描路徑正確,使用@TableId注解指定主鍵2024-11-11
Spring Boot 啟動失敗:循環(huán)依賴排查到懶加載配置的過程解析
本文我將從一個真實的生產(chǎn)環(huán)境故障案例出發(fā),帶你深入了解Spring Boot循環(huán)依賴的檢測機制、排查方法和解決方案,通過系統(tǒng)性分析和實戰(zhàn)演練幫助掌握如何在復(fù)雜的應(yīng)用中處理循環(huán)依賴,感興趣的朋友跟隨小編一起看看吧2025-08-08
MyBatis批量添加數(shù)據(jù)2種實現(xiàn)方法
這篇文章主要介紹了MyBatis批量添加數(shù)據(jù)2種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
Spring AI 實現(xiàn) STDIO和SSE MCP Server的過
STDIO方式是基于進(jìn)程間通信,MCP Client和MCP Server運行在同一主機,主要用于本地集成、命令行工具等場景,這篇文章主要介紹了Spring AI 實現(xiàn) STDIO和SSE MCP Server,需要的朋友可以參考下2025-05-05

