學習別人實現(xiàn)某個功能的設計思路,來提高自己的編程水平。話不多說,下面進入正題。
GenericDeclaration
可以聲明類型變量的實體的公共接口,也就是說,只有實現(xiàn)了該接口才能在對應的實體上聲明(定義)類型變量,這些實體目前只有三個:Class(類)、Construstor(構造器)、Method(方法)(詳見:Java源碼解析之TypeVariable詳解
源碼
1
2
3
4
|
public interface GenericDeclaration { //獲得聲明列表上的類型變量數(shù)組 public TypeVariable<?>[] getTypeParameters(); } |
概述
所有可以聲明/定義類型變量(TypeVariable)的實體的公共父接口,其直接實現(xiàn)子類:java.lang.reflect子包中的:Class,Method,Constructor,所以,這三個對應的類上、方法上、構造器上可以聲明(定義)類型變量,GenericDeclaration的直接實現(xiàn)子類沒有Field類,所以屬性上面不能定義類型變量。
源碼詳解
1.getTypeParameters
返回實體上聲明(定義)的所有的類型變量。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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()); } } } //輸出結果 K V |
總結
以上就是本文關于Java源碼解析之GenericDeclaration詳解的全部內(nèi)容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
原文鏈接:http://blog.csdn.net/a327369238/article/details/52710827