欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java从list中取出对象并获得其属性值的方法

程序员文章站 2024-02-17 09:53:22
最近公司的项目需要导出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文件的生成,导出了。