java从list中取出对象并获得其属性值的方法
程序员文章站
2023-12-20 20:40:58
最近公司的项目需要导出csv文件,一个同事用最原始的方式将每条记录取出然后加“,”解决。但是客户后面要求在每个页面当中都加入这个功能。于是,问题来了,分开写代码太多,合起来...
最近公司的项目需要导出csv文件,一个同事用最原始的方式将每条记录取出然后加“,”解决。
但是客户后面要求在每个页面当中都加入这个功能。于是,问题来了,分开写代码太多,合起来又不能确定在list中存储的对象为哪个对象,不能用get方法获得属性。
我一直认为当初他那样写就将程序写死了。可是,在多次尝试后,还是通过java的反射从list中取出了对象,从对象中取出了属性值:
下面是代码:
复制代码 代码如下:
package com.hb.test;
import java.lang.reflect.field;
import java.util.arraylist;
import java.util.list;
public class test {
public static void main(string[] args) throws illegalargumentexception,
exception {
person p1 = new person("111", "aaa");
person p2 = new person("222", "bbb");
list list = new arraylist();
list.add(p1);
list.add(p2);
test(list);
}
public static void test(list list) throws exception, illegalaccessexception {
for (int i = 0; i < list.size(); i++) {
field[] fields = list.get(i).getclass().getdeclaredfields();
object oi = list.get(i);
for (int j = 0; j < fields.length; j++) {
if(!fields[j].isaccessible()){
fields[j].setaccessible(true);
}
system.out.println(fields[j].get(oi));
}
}
}
}
这样在不知道从list中取出的为何对象的时候,也能够取得对象的属性值,就可以写出一个公共的方法来传入list对象,然后进行csv文件的生成,导出了。