/**
* 遍历集合中的元素,取指定列的所有值
* @return
* @throws Exception
*/
public List getFiledList(List list, String filed) {
List total = new ArrayList();
for (Object obj : list) {
Class clazz = obj.getClass();// 获取集合中的对象类型
Field[] fds = clazz.getDeclaredFields();// 获取他的字段数组
for (Field field : fds) {// 遍历该数组
String fdname = field.getName();// 得到字段名,
try {
Method method = clazz.getMethod("get" + change(fdname),null);// 根据字段名找到对应的get方法,null表示无参数
if (null != method && filed.equals(fdname)) {
Object val = method.invoke(obj, null);
total.add(val);
}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return total;
}
/**
*@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;
}
}
通过集合获取其中一列的所有值
最新推荐文章于 2023-01-13 16:07:26 发布