如何使用help reflection-Java获取通用字段类型(字符串表示)?
有一些字段:如何使用help reflection-Java获取通用字段类型(字符串表示)?,java,reflection,types,type-inference,Java,Reflection,Types,Type Inference,有一些字段: public class Class1 { private Map<String,Integer> field1 = new HashMap<String,Integer>(); private int someField = 1; private int[] myIntArray = new int[]{1,2,3}; private List<ArrayList<String>> words = n
public class Class1 {
private Map<String,Integer> field1 = new HashMap<String,Integer>();
private int someField = 1;
private int[] myIntArray = new int[]{1,2,3};
private List<ArrayList<String>> words = null;
private ArrayList<String>[] group = (ArrayList<String>[])new ArrayList[4];
private List<List<List<ArrayList<List<List<String>>>>>> lists = null;
}
公共类1{
私有映射字段1=新HashMap();
private int someField=1;
私有int[]myIntArray=新int[]{1,2,3};
私有列表字=null;
私有ArrayList[]组=(ArrayList[])新ArrayList[4];
私有列表=空;
}
有没有一种简单的方法可以获取每种(通常是任何)类型的字符串表示形式?试试以下方法:
for (Field field : Class1.class.getDeclaredFields())
System.out.println(field.getGenericType());
输出:
java.util.Map<java.lang.String, java.lang.Integer>
int
class [I
java.util.List<java.util.ArrayList<java.lang.String>>
java.util.ArrayList<java.lang.String>[]
java.util.List<java.util.List<java.util.List<java.util.ArrayList<java.util.List<java.util.List<java.lang.String>>>>>>
java.util.Map
int
类别[I]
java.util.List
java.util.ArrayList[]
java.util.List
我想您可以使用Guava提供的TypeToken
从Field实例获取它……也许可以将列表重构为一个或两个单独的类?