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

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

 

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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值