Java如何利用反射对list对象做过滤
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下Java如何利用反射对list对象做过滤,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!反射对效率有影响 慎用!!!1.对象结构public class Busine
千家信息网最后更新 2025年11月07日Java如何利用反射对list对象做过滤
小编给大家分享一下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;}public E 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();//筛选符合条件的listif (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 看完了这篇文章,相信你对"Java如何利用反射对list对象做过滤"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
对象
反射
精确
工时
篇文章
部门
经营
参数
名称
字段
完了
收入
效率
更多
条件
标准
知识
结构
行业
负责人
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
草图大师怎么在服务器上运行
数据库 目关系是什么意思
dns服务器怎么填写
比特币开源数据库
中国网络安全专业相关的公司排名
浙江综合农业信息系统数据库
网络技术待遇
软件开发服务费如何申报收入
哪里招聘游戏软件开发实习生
高中网络安全黑板报版面
讨论网络安全的重要性英语
服务器h09故障码
苏州市信息网络安全协会
服务器管理面板使用
松江区企业软件开发供应商
阿里云云服务器安全吗
数据库管理系统试题答案
多维数据库有哪些软件
软件开发java和net
什么模型强调分阶段软件开发
数据库正在还原解决办法
高仿大众点评数据库
zync 软件开发
网络安全应当符合相关国家标准
软件开发中心建设
奇妙小森林网络技术
知识元建模用什么数据库
华为网络技术服务岗
广东c语言软件开发哪家好
微信技术数据库