Java如何利用反射对list对象做过滤
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,小编给大家分享一下Java如何利用反射对list对象做过滤,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!反射对效率有影响 慎用!!!1.对象结构public class Busine
千家信息网最后更新 2025年02月02日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;}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();//筛选符合条件的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安全错误
数据库的锁怎样保障安全
三年经验的杭州数据库工程师
网络安全性低怎么设计
全国计算机网络技术考试网
软件开发包含上架吗
sql数据库商品
计算机三级网络技术真题2020
视频服务器软件 推荐
集成软件开发包
网络安全给我们的生活
山东淘苑互联网科技网络公司
软件开发企业增税税率是多少
上海一汽软件开发岗
mysql 远程服务器
宁波tcl通信软件开发
数据库运维工资
智能模具制造管理软件开发
闵行区媒体数据库销售
企业网络安全防护政策
抖音去水印小程序无需服务器域名
容器管理服务器
手机软件开发报告总结
长沙超特网络技术有限公司
chfs数据库中一孩性别
青岛网络机顶盒时间服务器
我的世界暗之楼服务器客户端
网络安全与前端哪个工资高
360中国网络安全的公司
无线网络技术应用的例子_
数据库连接字符串安全
黑客会软件开发吗