最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之如何獲取泛型參數(shù)

 更新時(shí)間:2024年09月19日 10:34:42   作者:賺夠壹仟萬(wàn)  
在Java開(kāi)發(fā)中,獲取泛型參數(shù)一般有兩種方法:第一種是通過(guò)JDK自帶的API,主要利用反射機(jī)制來(lái)獲取類的泛型信息;第二種方法是借助Spring框架提供的GenericTypeResolver工具類,這種方式更加簡(jiǎn)便,這兩種方法都能有效地幫助開(kāi)發(fā)者在運(yùn)行時(shí)獲取到泛型參數(shù)

Java獲取泛型參數(shù)

對(duì)于一個(gè)基本的類

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

它的子類

public class StudentDao extends BaseDao<StudentDao.Student>{

    public static class Student{
    }

}

如何獲得當(dāng)前類對(duì)應(yīng)的泛型參數(shù)呢?

方法一 JDK

public static void main(String[] args) throws Exception {
    // 可以拿到帶有泛型信息的父類
    Type genericSuperclass = StudentDao.class.getGenericSuperclass();
    // 這里要判斷一手如果你的父類確實(shí)有泛型信息
    if (genericSuperclass instanceof ParameterizedType parameterizedType) {
        Type[] typeArguments = parameterizedType.getActualTypeArguments();
        System.out.println(typeArguments[0]);
    }
}

方法二 spring提供的方式

通過(guò)GenericTypeResolver獲得.

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

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決mybatis plus報(bào)錯(cuò)Invalid bound statement (not found):問(wèn)題

    解決mybatis plus報(bào)錯(cuò)Invalid bound statement 

    在使用MyBatis時(shí)遇到InvalidBoundStatement異常,常因多個(gè)MapperScan配置沖突或者包掃描路徑設(shè)置錯(cuò)誤,解決方法包括保留一個(gè)MapperScan聲明、檢查jar包沖突、確保命名空間和掃描路徑正確,使用@TableId注解指定主鍵
    2024-11-11
  • Spring Boot 啟動(dòng)失敗:循環(huán)依賴排查到懶加載配置的過(guò)程解析

    Spring Boot 啟動(dòng)失敗:循環(huán)依賴排查到懶加載配置的過(guò)程解析

    本文我將從一個(gè)真實(shí)的生產(chǎn)環(huán)境故障案例出發(fā),帶你深入了解Spring Boot循環(huán)依賴的檢測(cè)機(jī)制、排查方法和解決方案,通過(guò)系統(tǒng)性分析和實(shí)戰(zhàn)演練幫助掌握如何在復(fù)雜的應(yīng)用中處理循環(huán)依賴,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • jdk自帶定時(shí)器使用方法詳解

    jdk自帶定時(shí)器使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了jdk自帶定時(shí)器的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • mybatis-plus樂(lè)觀鎖實(shí)現(xiàn)方式詳解

    mybatis-plus樂(lè)觀鎖實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了mybatis-plus樂(lè)觀鎖實(shí)現(xiàn)方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot中使用 RabbitMQ的教程詳解

    SpringBoot中使用 RabbitMQ的教程詳解

    這篇文章主要介紹了SpringBoot中使用 RabbitMQ的教程詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • MyBatis批量添加數(shù)據(jù)2種實(shí)現(xiàn)方法

    MyBatis批量添加數(shù)據(jù)2種實(shí)現(xiàn)方法

    這篇文章主要介紹了MyBatis批量添加數(shù)據(jù)2種實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • java調(diào)用短信貓發(fā)短信示例

    java調(diào)用短信貓發(fā)短信示例

    這篇文章主要介紹了java調(diào)用短信貓發(fā)短信示例,需要的朋友可以參考下
    2014-04-04
  • redis分布式鎖的原理及代碼實(shí)例

    redis分布式鎖的原理及代碼實(shí)例

    這篇文章主要介紹了redis分布式鎖的原理及代碼實(shí)例,Redis作為一款高性能內(nèi)存數(shù)據(jù)庫(kù),其提供了一種非常實(shí)用的分布式鎖解決方案,可以幫助開(kāi)發(fā)人員輕松地實(shí)現(xiàn)分布式鎖功能,對(duì)于分布式系統(tǒng)的開(kāi)發(fā)和維護(hù),具有非常大的實(shí)用價(jià)值,需要的朋友可以參考下
    2024-01-01
  • Java集合的組內(nèi)平均值的計(jì)算方法總結(jié)

    Java集合的組內(nèi)平均值的計(jì)算方法總結(jié)

    在Java中,經(jīng)常需要對(duì)集合進(jìn)行各種操作,其中之一就是計(jì)算集合的組內(nèi)平均值,本文將介紹如何使用Java集合來(lái)計(jì)算組內(nèi)平均值,并提供一些示例代碼和實(shí)用技巧
    2024-08-08
  • Spring AI 實(shí)現(xiàn) STDIO和SSE MCP Server的過(guò)程詳解

    Spring AI 實(shí)現(xiàn) STDIO和SSE MCP Server的過(guò)

    STDIO方式是基于進(jìn)程間通信,MCP Client和MCP Server運(yùn)行在同一主機(jī),主要用于本地集成、命令行工具等場(chǎng)景,這篇文章主要介紹了Spring AI 實(shí)現(xiàn) STDIO和SSE MCP Server,需要的朋友可以參考下
    2025-05-05

最新評(píng)論

连江县| 定陶县| 永济市| 高邑县| 汉川市| 衡阳县| 北海市| 长沙县| 嘉鱼县| 绵竹市| 青川县| 武夷山市| 普宁市| 武陟县| 新乡市| 龙州县| 平阴县| 佳木斯市| 巴林左旗| 临海市| 伊通| 永善县| 苍梧县| 新昌县| 榆中县| 民丰县| 鹤山市| 康平县| 观塘区| 沁阳市| 伽师县| 夹江县| 榆社县| 嘉祥县| 东乌| 沙坪坝区| 永兴县| 民勤县| 石门县| 施甸县| 老河口市|