注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

放飞自由

年轻人,如果三年的时间里,没有任何想法,他这一生,就基本这个样子,没有多大改变。

 
 
 

日志

 
 

如何从List对象集合中获取所有对象的某一属性值  

2013-10-29 08:59:53|  分类: JAVA后台 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import org.springframework.util.CollectionUtils;

@SuppressWarnings("unchecked")
public class ListUtils {

public static List getFiledList(List list, String filed) {
if (CollectionUtils.isEmpty(list))
return null;
List filedList = new ArrayList();
try {

for (Object obj : list) {
Class clazz = obj.getClass();// 获取集合中的对象类型
Field[] fds = clazz.getDeclaredFields();// 获取他的字段数组
for (Field field : fds) {// 遍历该数组
String fdname = field.getName();// 得到字段名,

Method method = clazz.getMethod("get" + change(fdname),
null);// 根据字段名找到对应的get方法,null表示无参数

if (null != method && filed.equals(fdname)) {
Object val = method.invoke(obj, null);
filedList.add(val);
}

}
}

} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return filedList;
}

/**
 * @param src
 *            源字符串
 * @return 字符串,将src的第一个字母转换为大写,src为空时返回null
 */
public static String change(String src) {
if (src != null) {
StringBuffer sb = new StringBuffer(src);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
return sb.toString();
} else {
return null;
}
}

public static void main(String[] args) {
List<Student> list = new ArrayList<Student>();
Student s1 = new Student();
s1.setId(1);
s1.setName("name1");
s1.setAddress("address1");
list.add(s1);
Student s2 = new Student();
s2.setId(2);
s2.setName("name2");
s2.setAddress("address2");
list.add(s2);
Student s3 = new Student();
s3.setId(3);
s3.setName("name3");
s3.setAddress("address3");
list.add(s3);
Student s4 = new Student();
s4.setId(4);
s4.setName("name4");
s4.setAddress("address4");
list.add(s4);
List filedList = getFiledList(list,"address");
for (int i = 0; i < filedList.size(); i++) {
System.out.println(filedList.get(i));
}
}
}

class Student {

private int id;
private String name;
private String address;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}
}

我要mysql dba(超全) 视频
  评论这张
 
阅读(5490)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017