当前位置 : 主页 > 编程语言 > c++ >

ListUtils

来源:互联网 收集:自由互联 发布时间:2021-06-30
ListUtils 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("
ListUtils
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
 
   list = new ArrayList
  
   (); 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; } }
  
 
网友评论