java通过反射获取list_静态方法通过反射获取list集合

这篇博客介绍了如何使用Java反射API从对象中获取List数据。通过反射调用size方法获取集合长度,再循环遍历并调用get方法获取每个元素,将其添加到结果列表中。文中提供了一个静态方法示例,并提到了可以使用Field对象或直接通过属性名字符串来操作。
摘要由CSDN通过智能技术生成

静态方法工具

/**

* 反射获取对象中的list数据

*

* @param object

*/

public static List getList(Field field, Object object) {

List resultList = new ArrayList<>();

if (object != null) {

try {

Class clzz = field.get(object).getClass();

//反射调用获取到list的size方法来获取到集合的大小

Method sizeMethod = clzz.getDeclaredMethod("size");

if (!sizeMethod.isAccessible()) {

sizeMethod.setAccessible(true);

}

//集合长度

int size = (int) sizeMethod.invoke(field.get(object));

//循环遍历获取到数据

for (int i = 0; i < size; i++) {

//反射获取到list的get方法

Method getMethod = clzz.getDeclaredMethod("get", int.class);

//调用get方法获取数据

if (!getMethod.isAccessible()) {

getMethod.setAccessible(true);

}

Object invoke = getMethod.invoke(field.get(object), i);

T var1 = (T) invoke;

resultList.add(var1);

}

} catch (Exception e) {

e.printStackTrace();

}

}

return resultList;

}

备注

其中的 “field” 是 object 对象中的属性对应的 Field,field参数也可以改为String类型的参数名字,然后从object中获取该Field

链接:一个通用的获取参数值得切面( aop+反射+泛型 支持参数值比较深的情况)

本文地址:https://blog.csdn.net/Draymond_feng/article/details/107691882

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值