java從list中取出對象并獲得其屬性值的方法
最近公司的項目需要導(dǎo)出csv文件,一個同事用最原始的方式將每條記錄取出然后加“,”解決。
但是客戶后面要求在每個頁面當(dāng)中都加入這個功能。于是,問題來了,分開寫代碼太多,合起來又不能確定在list中存儲的對象為哪個對象,不能用get方法獲得屬性。
我一直認(rèn)為當(dāng)初他那樣寫就將程序?qū)懰懒恕?墒?,在多次嘗試后,還是通過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文件的生成,導(dǎo)出了。
- java list用法示例詳解
- Java中List與Map初始化的一些寫法分享
- JAVA中l(wèi)ist,set,數(shù)組之間的轉(zhuǎn)換詳解
- JSON的String字符串與Java的List列表對象的相互轉(zhuǎn)換
- JAVA ArrayList詳細介紹(示例)
- JAVA LinkedList和ArrayList的使用及性能分析
- java8從list集合中取出某一屬性的值的集合案例
- Java List轉(zhuǎn)換成String數(shù)組幾種實現(xiàn)方式詳解
- java8實現(xiàn)list集合中按照某一個值相加求和,平均值等操作代碼
- 精通Java List 按字段提取對象
相關(guān)文章
Eclipse 使用Maven構(gòu)建SpringMVC項目
本文主要介紹在Eclipse下創(chuàng)建Maven項目構(gòu)建SpringMVC框架的過程,講解的比較詳細,需要的朋友可以參考下。2016-06-06
淺析Java8新特性Lambda表達式和函數(shù)式接口
Lambda表達式理解為是 一段可以傳遞的代碼。最直觀的是使用Lambda表達式之后不用再寫大量的匿名內(nèi)部類,簡化代碼,提高了代碼的可讀性2017-08-08
Java基礎(chǔ)教程之對象的方法與數(shù)據(jù)成員
這篇文章主要介紹了Java基礎(chǔ)教程之對象的方法與數(shù)據(jù)成員,本文講解對象的方法與數(shù)據(jù)成員相關(guān)知識,因為java是面向?qū)ο笳Z言,本文的知識都是經(jīng)常要用到的,需要的朋友可以參考下2014-08-08
Java 通過AQS實現(xiàn)數(shù)據(jù)組織
這篇文章主要介紹了通過AQS實現(xiàn)數(shù)據(jù)組織,想了解AQS的同學(xué)可以參考下2021-04-04

