获取一个list集合里面的一个对象的一个属性对应的值,平凑成一个字符串

来源:互联网 发布:淘宝卖假货店铺母婴 编辑:程序博客网 时间:2024/05/08 12:49

在做项目时,有时候我们需要删除一组数据,但是所根据的属性和对应类,我们不能确定,我们可以使用以下方法来处理

import java.util.ArrayList;import java.util.List;import java.lang.reflect.Method;import cn.okaysoft.bulletin.entity.BulletinContent;


public class ChangeToIds {/** * @author PBJ * @param list * @param column * @return 将最终的一个id字符串返回 * @time:2014-8-19 */   public static String getIds(List list,String column){   StringBuffer contextIds = new StringBuffer();if (list.size() >= 2) {contextIds.append("(");for (int i = 0; i < list.size() - 1; i++) {contextIds.append("\'"+ getFieldValueByName(column,list.get(i)) + "\'"+ ",");}contextIds.append("\'"+  getFieldValueByName(column,list.get(list.size() - 1))+ "\'"); // 拼装一个字符串是存放主键的,用逗号隔开contextIds.append(")");} else {contextIds.append("");contextIds.append("\'"+getFieldValueByName(column,list.get(0)) + "\'");contextIds.append(")");}String parmIds = contextIds.toString(); // 获取要删除附件中那个文件的主键   return parmIds;   }     /**   * @pbj   * @param fieldName 注意必须是字符串类型的,是一个属性对应的名称,如User类里面有name,则fileName="name"   * @param o   * @return   */   private static Object getFieldValueByName(String fieldName, Object o) {       try {            String firstLetter = fieldName.substring(0,1).toUpperCase();            String getter = "get" + firstLetter + fieldName.substring(1); //得到一个get...属性相应的方法           Method method = o.getClass().getMethod(getter, new Class[] {});            Object value = method.invoke(o, new Object[] {});            return value;        } catch (Exception e) {        e.printStackTrace();           return null;        }    } }



0 0