一个简单类的例子
在这个类中,有普通的String类型,有数组类型,有带泛型的List类型,有嵌套List类型,以及有多个泛型参数的简单类,这个类将作为我们后面的内容的基础。我们这一次博客解析如何使用反射获取到不同属性的类型值。
public class Some{
private String name;
private Integer[] numbers;
private List list;
private List> matrix;
private Map map;
//ignore getter and setter
}
分析如何获取不同属性的类型
1、普通类型
普通类型的变量直接field.getType()即可以获取到他们的类型
public void queryNameType() throws NoSuchFieldException {
Field field = Some.class.getDeclaredField(“name”);
Class> type = field.getType();
assertEquals(type,String.class);
}
2、数组类型
数组类型不像其他的类型可以通过isAssignableFrom()函数来进行判断,他需要使用isArray() 来判断该type是否是一个数组类型,然后使用getComponentType() 获取他的元素的类型
public void queryArrayType() throws NoSuchFieldException {