Java 找出字段的列表类型
我试图弄清楚在我的程序中实现了什么类型的类a列表 我抓取JSON数据并将其放在根对象中。然后,这个根对象中有列表来存储JSON数据的每个元素 例如,我有一个根,其声明的字段为Java 找出字段的列表类型,java,class,dynamic,field,Java,Class,Dynamic,Field,我试图弄清楚在我的程序中实现了什么类型的类a列表 我抓取JSON数据并将其放在根对象中。然后,这个根对象中有列表来存储JSON数据的每个元素 例如,我有一个根,其声明的字段为 List<Person> people List<Location> locations 列出人 列出地点 所以我想做的是循环根类的每个字段,获取我当前查看的列表中的类的类型,然后为该类调用特定的函数。(当我说特定函数时,我的意思是我声明了一个接口,这样我就可以返回实现接口的类类型,并运行它实现
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
vsLinkedList
或泛型Person
vsLocation
?看。我在这里使用了它,从对象抓取了列表,抓取了类,然后创建了一个新的实例!非常感谢这比试图从野外获得更好,因为这让一个高伦特人知道我得到了正确的职业!