最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Java利用反射对list对象做过滤代码示例
时间:2022-06-29 01:51:35 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下Java利用反射对list对象做过滤代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
1.对象结构
public class BusinessDept { private String year;//年 private String month;//月 private String deptName;//部门名称 private String deptLeader;//部门负责人 private Double jyz; //经营值 private Double rev; //收入 private Double exp; //支出 private Double tWorkTime; //填报工时 private Double sWorkTime; //标准工时 private Double param; //经营参数 public void setYear(String year) { this.year = year; } public void setMonth(String month) { this.month = month; } public void setDeptName(String deptName) { this.deptName = deptName; } public void setDeptLeader(String deptLeader) { this.deptLeader = deptLeader; } public void setJyz(Double jyz) { this.jyz = jyz; } public String getYear() { return year; } public String getMonth() { return month; } public String getDeptName() { return deptName; } public String getDeptLeader() { return deptLeader; } public Double getJyz() { return jyz; } public Double getRev() { return rev; } public Double getExp() { return exp; } public Double gettWorkTime() { return tWorkTime; } public Double getsWorkTime() { return sWorkTime; } public Double getParam() { return param; } public void setRev(Double rev) { this.rev = rev; } public void setExp(Double exp) { this.exp = exp; } public void settWorkTime(Double tWorkTime) { this.tWorkTime = tWorkTime; } public void setsWorkTime(Double sWorkTime) { this.sWorkTime = sWorkTime; } public void setParam(Double param) { this.param = param; } publicE get(String name) { Class cl = this.getClass(); Field[] fields = cl.getDeclaredFields(); try { for (Field field : fields) { field.setAccessible(true); if (field.getName().equals(name)) { return (E) field.get(this); } } } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } }
2.根据字段名获取value
publicE get(String name) { Class cl = this.getClass(); Field[] fields = cl.getDeclaredFields(); try { for (Field field : fields) { field.setAccessible(true); if (field.getName().equals(name)) { return (E) field.get(this); } } } catch (IllegalAccessException e) { e.printStackTrace(); } return null; }
3.对list过滤
List businessDeptList = this.myQuery(); //筛选符合条件的list if (businessDeptList.size()>0){ businessDeptList = this.filterExact("year",year,businessDeptList); businessDeptList = this.filterExact("month",month,businessDeptList); businessDeptList = this.filterVague("deptName",deptName,businessDeptList); businessDeptList = this.filterVague("deptLeader",deptLeader,businessDeptList); if(!StringUtils.isEmpty(jyz)){ businessDeptList = this.filterExact("jyz",Double.parseDouble(jyz),businessDeptList); } if(!StringUtils.isEmpty(param)){ businessDeptList = this.filterExact("param",Double.parseDouble(param),businessDeptList); } if(!StringUtils.isEmpty(sWorkTime)){ businessDeptList = this.filterExact("sWorkTime",Double.parseDouble(sWorkTime),businessDeptList); } if(!StringUtils.isEmpty(rev)){ businessDeptList = this.filterExact("rev",Double.parseDouble(rev),businessDeptList); } if(!StringUtils.isEmpty(exp)){ businessDeptList = this.filterExact("exp",Double.parseDouble(exp),businessDeptList); } if(!StringUtils.isEmpty(tWorkTime)){ businessDeptList = this.filterExact("tWorkTime",Double.parseDouble(tWorkTime),businessDeptList); } }
4.精确匹配
//精确匹配 privateList filterExact(String name,T t,List businessDepts){ if(t.toString().isEmpty()){ return businessDepts; } List list = new ArrayList (); if(businessDepts.size()>0){ for(int i = 0;i 5.模糊匹配
//模糊匹配 private ListfilterVague(String name,String s,List businessDepts){ if(s.isEmpty()){ return businessDepts; } List list = new ArrayList (); if(businessDepts.size()>0){ for(int i = 0;i 相关文章
- 《原神》5.2卡池抽取建议 11-14
- 《原神》5.2版本新怪物介绍 11-14
- 《原神》希诺宁增伤触发方法 11-14
- 《原神》循音觅奇活动入口 11-14
- 《原神》循音觅奇兑换码获取方法 11-14
- 《原神》花羽会活动飞行技巧介绍 11-14