iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java如何利用反射对list对象做过滤
  • 445
分享到

Java如何利用反射对list对象做过滤

2023-06-29 17:06:55 445人浏览 薄情痞子
摘要

小编给大家分享一下Java如何利用反射对list对象做过滤,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!反射对效率有影响 慎用!!!1.对象结构public class BusinessDep

小编给大家分享一下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> 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

public <E> 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;}

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.精确匹配

//精确匹配private <T>List<BusinessDept> filterExact(String name,T t,List<BusinessDept> businessDepts){if(t.toString().isEmpty()){return businessDepts;}List<BusinessDept> list = new ArrayList<BusinessDept>();if(businessDepts.size()>0){for(int i = 0;i<businessDepts.size();i++){if(businessDepts.get(i).get(name).equals(t)){list.add(businessDepts.get(i));}}}return list;}

5.模糊匹配

//模糊匹配private List<BusinessDept> filterVague(String name,String s,List<BusinessDept> businessDepts){if(s.isEmpty()){return businessDepts;}List<BusinessDept> list = new ArrayList<BusinessDept>();if(businessDepts.size()>0){for(int i = 0;i<businessDepts.size();i++){if(businessDepts.get(i).get(name).toString().contains(s)){list.add(businessDepts.get(i));}}}return list;}

看完了这篇文章,相信你对“Java如何利用反射对list对象做过滤”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: Java如何利用反射对list对象做过滤

本文链接: https://www.lsjlt.com/news/325703.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java利用反射对list对象做过滤
    目录1.对象结构2.根据字段名获取value3.对list过滤4.精确匹配5.模糊匹配 ​反射对效率有影响 慎用!!!​ 1.对象结构 public class Busin...
    99+
    2022-11-13
  • Java如何利用反射对list对象做过滤
    小编给大家分享一下Java如何利用反射对list对象做过滤,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!反射对效率有影响 慎用!!!1.对象结构public class BusinessDep...
    99+
    2023-06-29
  • 如何在Java中利用反射创建对象
    本篇文章给大家分享的是有关如何在Java中利用反射创建对象,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、什么是反射Java Reflaction in Action中的解释...
    99+
    2023-06-15
  • Java如何通过反射获取Constructor、Field、Method对象
    目录前言使用反射技术获取构造器对象并使用使用反射技术获取成员变量对象并使用使用反射技术获取方法对象并使用总结前言 在实际开发中,通过反射可以得到一个类的完整结构,包括类的构造方法、类...
    99+
    2022-11-13
  • 怎么在java中利用反射获取对象
    本篇文章为大家展示了怎么在java中利用反射获取对象,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开...
    99+
    2023-06-14
  • 怎么在java中利用反射创建对象
    今天就跟大家聊聊有关怎么在java中利用反射创建对象,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、...
    99+
    2023-06-14
  • 怎么在java中利用反射生成对象
    这期内容当中小编将会给大家带来有关怎么在java中利用反射生成对象,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系...
    99+
    2023-06-14
  • 怎么在java中利用反射实例化对象
    怎么在java中利用反射实例化对象?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系...
    99+
    2023-06-14
  • golang 如何通过反射创建新对象
    废话少说,直接贴代码~ type A struct { Name string } // 测试unit func TestReflect(t *testing.T) { ...
    99+
    2022-11-12
  • java利用反射机制如何实现获取对象的值
    本篇文章给大家分享的是有关java利用反射机制如何实现获取对象的值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。通过反射机制得到对象中的属性和属性值 在对象中private没问...
    99+
    2023-05-31
    java 反射 对象
  • java如何根据方法反射对象
    在Java中,可以使用反射机制来获取和使用方法对象。首先,我们需要使用`Class`对象的`getMethod()`方法或`getD...
    99+
    2023-09-08
    java
  • 【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
    本篇主要说明在Java8及以上版本中,使用stream().filter()来过滤List对象,查找符合条件的集合。 一、集合对象定义 集合对象以学生类(Student)为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项。 ...
    99+
    2023-09-01
    java 开发语言 Powered by 金山文档
  • java8如何根据list对象中的属性过滤筛选
    目录根据list对象中的属性过滤筛选根据性别筛选出所有的女同学list根据对象某个字段或多个字段去重、筛选、List转Map、排序、分组、统计计数等简单示例如下过滤筛选分组去重Lis...
    99+
    2022-11-13
  • java如何制作反射对象的获取
    小编给大家分享一下java如何制作反射对象的获取,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java.lang.Class对象的获取方式现金盘系统制作q<...
    99+
    2023-06-02
  • JSON.stringify如何使用数组过滤并序列化对象
    这篇文章主要介绍JSON.stringify如何使用数组过滤并序列化对象,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用数组过滤并序列化对象:// 使用“数组”当替代器 ...
    99+
    2022-10-19
  • 如何在Java 中使用泛型或反射机制对DAO进行抽象
    本篇文章为大家展示了如何在Java 中使用泛型或反射机制对DAO进行抽象,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java 中利用泛型和反射机制抽象DAO的实例一般的DAO都有CRUD操作,在每...
    99+
    2023-05-31
    java 泛型 反射机制
  • Java如何通过反射获取私有构造、私有对象、私有字段、私有方法
    Java反射获取私有构造、私有对象、私有字段、私有方法 1. 创建测试的私有对象 public class Person { private int age = 5; ...
    99+
    2022-11-12
  • 如何用java反射技术将sql操作与面向对象编程关联起来
    这篇“如何用java反射技术将sql操作与面向对象编程关联起来”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何用java反...
    99+
    2023-06-30
  • java项目中如何使用 web过滤器对乱码进行处理
    本篇文章为大家展示了java项目中如何使用 web过滤器对乱码进行处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们在servlet页面中读取前台的数据时  经常会出现乱码问题而自己每...
    99+
    2023-05-31
    java web过滤器 乱码
  • Java 中如何利用 Linux 系统实现对象重定向?
    在 Java 程序中,我们可以使用 System.out.println() 方法输出信息到控制台,但在一些情况下,我们需要将输出信息重定向到其他地方,如文件、网络等。本文将介绍如何利用 Linux 系统实现 Java 中的对象重定向。 ...
    99+
    2023-10-10
    重定向 linux 对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作