jdk1.5 的泛形
變量類型
<t>,<t,k>,<t extends list & map>
這些都是變量類型
類
class A<t extends b & list,k t>{}
TypeVariable[] tvs = A.class.getTypeParameters()
tvs 的 name 就是T,K
tvs 的 bound 就是extends 修飾符修飾的類型。
參數類型
Map<string,string>
這個就是參數類型,能夠描述爲一個class帶上<>就是參數類型。
類型數組
List<string>[] list;
List<string>[] 就是類型數組。
通配符類型
List<!--? extends Map--> list;
<!--? extends Map--> 這個type 就是通配符類型
ResolvableType能夠解決類,構造器,屬性,方法中的泛形
類
public class A<t,k>{}
public class A1 extends A<list<string>,K>{}
ResolvableType rs = ResolvableType.forClass(A1.class);
System.out.println(rs.resolve()); //A1
System.out.println(rs.getGeneric(0));//?
System.out.println(rs.getSuperType().getGeneric(0,0));//String
構造器
public A1(List<string> list,List<!--? extends Map<String,String-->> list2){}
ResolvableType rs = ResolvableType.forConstructorParameter(A1.class.getDeclaredConstructors()[0],1);
System.out.println(rs.resolve()); //List
System.out.println(rs.getGeneric(0,1)); // String
System.out.println(rs.getSuperType()); //?
屬性
方法</string></list<string></t,k></string></string></string,string></t></t></t,k></t>