对于符合JAVA Bean规范的bean,调用其方法应优先使用java.beans.PropertyDescriptor获取Method进行方法调用,以获得更大的可维护性。
public void gridColumnFilter(List<?> list, Map<String, Object> dataMap){ for (Iterator<?> iterator = list.iterator(); iterator.hasNext();) { Object bean = iterator.next(); for (int i = 0; i < indexs.length; i++) { //使用反射类 PropertyDescriptor pd = new PropertyDescriptor( indexs[i], bean.getClass()); Method getter = pd.getReadMethod(); if (!String.valueOf(getter.invoke(bean)).toLowerCase().contains(values[i].toLowerCase())) { iterator.remove(); break; } } } }
//通过class.forName或得类信息
public <T> List<T> getResultListFromCache(Object jsonObject,
Class<T> className) throws ClassNotFoundException {
List<T> list = new ArrayList<T>();
list = (List<T>) JSONArray.toCollection(
JSONArray.fromObject(jsonObject),
Class.forName(className.getName()));
return list;
}
本文出自 “贾小仙” 博客,请务必保留此出处http://hackerxian.blog.51cto.com/9240575/1611816
对JAVA Bean使用PropertyDescriptor反射调用JAVA方法低耦合
原文:http://hackerxian.blog.51cto.com/9240575/1611816