反射怎么判断LIST中的类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射怎么判断LIST中的类型相关的知识,希望对你有一定的参考价值。

参考技术A public class NewClass public static void main(String[] args) ArrayList<String> list = new ArrayList<String>(); Method[] methods = list.getClass().getMethods(); for (int idx = 0; idx < methods.length; idx++) if (methods[idx].getName().equals("add")) try methods[idx].invoke(list, "Hello"); catch (Exception ex) // Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); System.out.println(Arrays.toString(list.toArray()));

java 反射机制,通过字符串获取一个类的属性,并且得到这个属性是啥类型的。

我现在是通过取得Field[]然后循环比较来实现的

for (int i = 0; i < fields.length; i++)
if (fields[i].getName().equalsIgnoreCase(name))
// 判断是不是List类型
if (fields[i].getType().getName().equals(
"java.util.List"))
//一个一个比较后,才得到了List的泛型
Type type = fields[i].getGenericType();


有没有更好的办法,不用循环比较,直接根据字符串得到对象属性的类型。

参考技术A 你的需求是:得到类中指定类型的属性集合吧,类似于需要Field[] getFields(String type) 这样的函数,目前java尚未提供这样的api。还是需要遍历的本回答被提问者采纳

以上是关于反射怎么判断LIST中的类型的主要内容,如果未能解决你的问题,请参考以下文章

java,关于利用反射自动设置List<T>中T的类型

怎么通过反射获得实体类中List类型的对象的各个属性?

反射如何判断对象类型并实现强中类型转换

C# 反射怎么判断属性是int还是datetime,或者其他值类型

java 怎么获取list泛型里的对象类型

反射与元类