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

最近公司的项目需要导出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文件的生成,导出了。

时间: 2024-08-02 14:56:49

java从list中取出对象并获得其属性值的方法_java的相关文章

Java Web项目中使用Socket通信多线程、长连接的方法_java

很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接如一个硬件设备,通过tcp通信,获取设备传上来的数据,并对数据做回应. 先看一下web的监听代码: import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class

Java通过反射机制动态设置对象属性值的方法_java

/** * MethodName: getReflection<br> * Description:解析respXML 在通过反射设置对象属性值 * User: liqijing * Date:2015-7-19下午12:42:55 * @param clzzName * @param respXML * @return * @throws ClassNotFoundException * @throws DocumentException * @throws IllegalArgumentE

如何取出list里面的对象的多个属性值,并放在表格的td中

问题描述 如何取出list里面的对象的多个属性值,并放在表格的td中 解决方案 使用JSTL表达式<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 因为是list集合,所有需要用进行循环,具体如下. 一,导包(MyEclipse内置函数包) <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix=

java,android中intent对象和bundle对象有和区别?

问题描述 java,android中intent对象和bundle对象有和区别? android中intent对象和bundle对象有和区别?这两个对象都存在吗?有什么用的,传递数据吗还是怎么 的 解决方案 intent内部就是用bundle存储的 解决方案二: http://m.blog.csdn.net/blog/na604365019/8042977 解决方案三: android 中bundle对象

浅析JS中document对象的一些重要属性

本篇文章主要是对JS中document对象的一些重要属性进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 可以通过这些属性访问到页面中的每一个元素和它们的属性,每一个标签都可以通过它们对应的数组去访问他们的属性   一: forms数组对象:代码网页中所有form标签的集合   二: anchors数组对象:指定了网页中所有指定了name或id属性的<a>标签的集合,但不包括指定了href标签的集合   三:links数组对象  指所有指定了href属性的<a>标签的

请问MVVM中,new一个与用户控件数据绑定的ViewModel对象后,其属性值为空了,这是为什么?

问题描述 请问MVVM中,new一个与用户控件数据绑定的ViewMode类l对象后,其属性值为空了,这是为什么? 解决方案 本帖最后由 zjp1907 于 2014-08-28 01:50:33 编辑解决方案二: 解决方案三:new一个ViewModel是新创建一个对象,当然是空的啦,除非你这个ViewModel是从别的地方传过来的,里面的值才可能不为空.又或者就是你这个ViewModel中的字段属性都有默认值--解决方案四:引用 回复于:2014-08-2823:13:51new一个ViewM

$.each遍历对象、数组的属性值并进行处理_jquery

通过它,你可以遍历对象.数组的属性值并进行处理. 使用说明 each函数根据参数的类型实现的效果不完全一致: 1.遍历对象(有附加参数) $.each(Object, function(p1, p2) { this; //这里的this指向每次遍历中Object的当前属性值 p1; p2; //访问附加参数 }, ['参数1', '参数2']); 2.遍历数组(有附件参数) $.each(Array, function(p1, p2){ this; //这里的this指向每次遍历中Array的当

Excel中提取指定条件的不重复值的方法

  Excel中提取指定条件的不重复值的方法          话说某单位国庆员工文体活动安排,不同的员工参加有不同的项目. 现在需要看看美女小丽一共参加了几个项目. 也就是提取B列等于指定姓名的.C列不重复项. 如果用函数提取,公式会是这样的: =INDEX(C:C,SMALL(IF((MATCH(C$2:C$12&B$2:B$12,C$2:C$12&B$2:B$12,)=ROW($1:$11))*(B$2:B$12=E$2),ROW($2:$12),999),ROW(A1)))&

mfc-MFC中PropertyGrid 控件怎么判断属性值是否被修改?

问题描述 MFC中PropertyGrid 控件怎么判断属性值是否被修改? VC++ MFC中PropertyGrid 控件怎么判断属性值是否被修改? 解决方案 OnEndEdit OnPropertyChanged 在这里面加上代码 解决方案二: http://datreexia.blog.163.com/blog/static/204235006201431124618531/