Java源碼解析之GenericDeclaration詳解
學(xué)習(xí)別人實(shí)現(xiàn)某個(gè)功能的設(shè)計(jì)思路,來(lái)提高自己的編程水平。話不多說(shuō),下面進(jìn)入正題。
GenericDeclaration
可以聲明類型變量的實(shí)體的公共接口,也就是說(shuō),只有實(shí)現(xiàn)了該接口才能在對(duì)應(yīng)的實(shí)體上聲明(定義)類型變量,這些實(shí)體目前只有三個(gè):Class(類)、Construstor(構(gòu)造器)、Method(方法)(詳見(jiàn):Java源碼解析之TypeVariable詳解
源碼
public interface GenericDeclaration { //獲得聲明列表上的類型變量數(shù)組 public TypeVariable<?>[] getTypeParameters(); }
概述
所有可以聲明/定義類型變量(TypeVariable)的實(shí)體的公共父接口,其直接實(shí)現(xiàn)子類:java.lang.reflect子包中的:Class,Method,Constructor,所以,這三個(gè)對(duì)應(yīng)的類上、方法上、構(gòu)造器上可以聲明(定義)類型變量,GenericDeclaration的直接實(shí)現(xiàn)子類沒(méi)有Field類,所以屬性上面不能定義類型變量。
源碼詳解
1.getTypeParameters
返回實(shí)體上聲明(定義)的所有的類型變量。
public class Main<K extends classA & interfaceB, V> { classA<K>[][] key; V value; public static void main(String[] args) throws Exception { TypeVariable[] types = Main.class.getTypeParameters(); for(TypeVariable type : types){ System.out.println(type.getName()); } } } //輸出結(jié)果 K V
總結(jié)
以上就是本文關(guān)于Java源碼解析之GenericDeclaration詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java源碼解析之object類、淺談Java多線程處理中Future的妙用(附源碼)等,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
推薦本站兩本Java編程相關(guān)的書籍,免費(fèi)下載,供大家學(xué)習(xí)參考:
圖解數(shù)據(jù)結(jié)構(gòu)使用java PDF下載
http://www.dbjr.com.cn/books/581892.html
Java設(shè)計(jì)模式深入研究 PDF
相關(guān)文章
Java利用Socket實(shí)現(xiàn)網(wǎng)絡(luò)通信功能
在早期的網(wǎng)絡(luò)編程中,Socket是很常見(jiàn)的實(shí)現(xiàn)技術(shù)之一,比如早期的聊天室,就是基于這種技術(shù)進(jìn)行實(shí)現(xiàn)的,另外現(xiàn)在有些消息推送,也可以基于Socket實(shí)現(xiàn),本文小編給大家介紹了Java利用Socket實(shí)現(xiàn)網(wǎng)絡(luò)通信功能的示例,需要的朋友可以參考下2023-11-11Java讀取resources目錄下文件路徑的九種代碼示例教程
在Java開發(fā)中經(jīng)常需要讀取項(xiàng)目中resources目錄下的文件或獲取資源路徑,這篇文章主要給大家介紹了關(guān)于Java讀取resources目錄下文件路徑的九種代碼示例教程,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07Java動(dòng)態(tài)規(guī)劃篇之線性DP的示例詳解
這篇文章主要通過(guò)幾個(gè)例題為大家詳細(xì)介紹一些Java動(dòng)態(tài)規(guī)劃中的線性DP,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下2022-11-11jackson序列化和反序列化的應(yīng)用實(shí)踐指南
這篇文章主要給大家介紹了關(guān)于jackson序列化和反序列化的應(yīng)用實(shí)踐指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09深入解析Apache Kafka實(shí)時(shí)流處理平臺(tái)
這篇文章主要為大家介紹了Apache Kafka實(shí)時(shí)流處理平臺(tái)深入解析,從基本概念到實(shí)戰(zhàn)操作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Java開發(fā)工具-scala處理json格式利器-json4s詳解
這篇文章主要介紹了開發(fā)工具-scala處理json格式利器-json4s,文章中處理方法講解的很清楚,有需要的同學(xué)可以研究下2021-02-02SpringMVC框架實(shí)現(xiàn)Handler處理器的三種寫法
這篇文章主要介紹了SpringMVC框架實(shí)現(xiàn)Handler處理器的三種寫法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02