Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用help reflection-Java获取通用字段类型(字符串表示)?_Java_Reflection_Types_Type Inference - Fatal编程技术网

如何使用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实例获取它……也许可以将
列表重构为一个或两个单独的类?