欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Java獲取泛型參數(shù)

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

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

它的子類(lèi)

public class StudentDao extends BaseDao<StudentDao.Student>{

    public static class Student{
    }

}

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

方法一 JDK

public static void main(String[] args) throws Exception {
    // 可以拿到帶有泛型信息的父類(lèi)
    Type genericSuperclass = StudentDao.class.getGenericSuperclass();
    // 這里要判斷一手如果你的父類(lèi)確實(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)文章

  • SpringBoot詳細(xì)分析自動(dòng)裝配原理并實(shí)現(xiàn)starter

    SpringBoot詳細(xì)分析自動(dòng)裝配原理并實(shí)現(xiàn)starter

    相對(duì)于傳統(tǒng)意義上的Spring項(xiàng)目,SpringBoot具有開(kāi)箱即用,簡(jiǎn)化配置,內(nèi)置Tomcat等等等等一系列的特點(diǎn)。在這些特點(diǎn)中,最重要的兩條就是約定優(yōu)于配置和自動(dòng)裝配
    2022-07-07
  • MyBatis Example And與Or混合使用的實(shí)例

    MyBatis Example And與Or混合使用的實(shí)例

    這篇文章主要介紹了MyBatis Example And與Or混合使用的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 一個(gè)合格JAVA軟件工程師應(yīng)該具備什么

    一個(gè)合格JAVA軟件工程師應(yīng)該具備什么

    一個(gè)合格JAVA軟件工程師應(yīng)該具備哪些專業(yè)技能,面試技巧是什么?本文為大家分享了2016版最新Java軟件工程師就業(yè)思維圖,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 關(guān)于kafka消費(fèi)不到遠(yuǎn)程bootstrap-server?數(shù)據(jù)的問(wèn)題

    關(guān)于kafka消費(fèi)不到遠(yuǎn)程bootstrap-server?數(shù)據(jù)的問(wèn)題

    很多朋友遇到kafka消費(fèi)不到遠(yuǎn)程bootstrap-server?數(shù)據(jù)的問(wèn)題,怎么解決這個(gè)問(wèn)題,很多朋友不知所措,下面小編給大家?guī)?lái)了關(guān)于kafka消費(fèi)不到遠(yuǎn)程bootstrap-server?數(shù)據(jù)的問(wèn)題及解決方法,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • Java基于MySQL實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    Java基于MySQL實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java基于MySQL實(shí)現(xiàn)學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • java異常中throw和throws的區(qū)別及說(shuō)明

    java異常中throw和throws的區(qū)別及說(shuō)明

    這篇文章主要介紹了java異常中throw和throws的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • SpringBoot導(dǎo)出PDF的四種實(shí)現(xiàn)方法詳解

    SpringBoot導(dǎo)出PDF的四種實(shí)現(xiàn)方法詳解

    在Spring?Boot應(yīng)用程序中實(shí)現(xiàn)PDF導(dǎo)出功能,可以選擇多種庫(kù)和技術(shù)棧,本文為大家整理了四種常見(jiàn)的方法,感興趣的小伙伴可以參考一下
    2025-02-02
  • Java報(bào)錯(cuò):Java.io.FileNotFoundException解決方法

    Java報(bào)錯(cuò):Java.io.FileNotFoundException解決方法

    這篇文章主要介紹了Java.io.FileNotFoundException的產(chǎn)生原因和解決方法,造成這個(gè)報(bào)錯(cuò)的原因可能有文件路徑錯(cuò)誤、文件被刪除或移動(dòng)和權(quán)限問(wèn)題,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • 如何在Redis中實(shí)現(xiàn)分頁(yè)排序查詢過(guò)程解析

    如何在Redis中實(shí)現(xiàn)分頁(yè)排序查詢過(guò)程解析

    這篇文章主要介紹了如何在Redis中實(shí)現(xiàn)分頁(yè)排序查詢過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot定制JSON響應(yīng)數(shù)據(jù)返回的示例代碼

    SpringBoot定制JSON響應(yīng)數(shù)據(jù)返回的示例代碼

    @JsonView 是 Jackson 庫(kù)中的一個(gè)注解,它允許你定義哪些屬性應(yīng)該被序列化到 JSON 中,基于不同的“視圖”或“配置”,在本文中,通過(guò)了解@JsonView,你將能夠更好地掌握如何在Spring Boot應(yīng)用中定制JSON數(shù)據(jù)的輸出,需要的朋友可以參考下
    2024-05-05

最新評(píng)論