Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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
Java 找出字段的列表类型_Java_Class_Dynamic_Field - Fatal编程技术网

Java 找出字段的列表类型

Java 找出字段的列表类型,java,class,dynamic,field,Java,Class,Dynamic,Field,我试图弄清楚在我的程序中实现了什么类型的类a列表 我抓取JSON数据并将其放在根对象中。然后,这个根对象中有列表来存储JSON数据的每个元素 例如,我有一个根,其声明的字段为 List<Person> people List<Location> locations 列出人 列出地点 所以我想做的是循环根类的每个字段,获取我当前查看的列表中的类的类型,然后为该类调用特定的函数。(当我说特定函数时,我的意思是我声明了一个接口,这样我就可以返回实现接口的类类型,并运行它实现

我试图弄清楚在我的程序中实现了什么类型的类a列表

我抓取JSON数据并将其放在根对象中。然后,这个根对象中有列表来存储JSON数据的每个元素

例如,我有一个根,其声明的字段为

List<Person> people
List<Location> locations
列出人
列出地点
所以我想做的是循环根类的每个字段,获取我当前查看的列表中的类的类型,然后为该类调用特定的函数。(当我说特定函数时,我的意思是我声明了一个接口,这样我就可以返回实现接口的类类型,并运行它实现的函数来分解列表


调用类clss=fieldObj.getType()(其中fieldObj是类型字段)只返回它是一个列表。如何获取此字段的列表类型?

如果在运行时查找列表中包含的对象类型,则无法从
列表本身进行查找。这是因为类型擦除,这意味着在运行时,所有
列表都是
list
列表中对象的类型,获取列表中的第一个元素,并执行
instanceof
assignable from

在Java 1.5+中,可以使用
字段中的方法部分完成

Field.getGenericType()将查询类文件中的签名属性(如果存在)。如果该属性不可用,它将使用Field.getType(),该属性未因引入泛型而更改

看一个例子,看看代码打印的目的是什么

$java FieldSpy FieldSpy列表


>GenericType:java.util.List

你所说的类型是什么意思?实现
ArrayList
vs
LinkedList
或泛型
Person
vs
Location
?看。我在这里使用了它,从对象抓取了列表,抓取了类,然后创建了一个新的实例!非常感谢这比试图从野外获得更好,因为这让一个高伦特人知道我得到了正确的职业!