spring application 之 ResolvableType

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帶上&lt;&gt;就是參數類型。

類型數組

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&gt;{}

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-->&gt; 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>

相關文章
相關標籤/搜索