java field 获取类型_Java-使用反射获取类型信息

  • Post author:
  • Post category:java


一个简单类的例子

在这个类中,有普通的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 {



版权声明:本文为weixin_39590601原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。