返回顶部
首页 > 资讯 > 后端开发 > Python >Java利用反射对list对象做过滤
  • 909
分享到

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

2024-04-02 19:04:59 909人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.对象结构2.根据字段名获取value3.对list过滤4.精确匹配5.模糊匹配 ​反射对效率有影响 慎用!!!​ 1.对象结构 public class Busin

#yyds干货盘点#利用反射对list对象做过滤_sed

​反射对效率有影响 慎用!!!

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();
//筛选符合条件的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.精确匹配

//精确匹配
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对象做过滤的文章就介绍到这了,更多相关list对象过滤内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

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

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

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

猜你喜欢
  • Java利用反射对list对象做过滤
    目录1.对象结构2.根据字段名获取value3.对list过滤4.精确匹配5.模糊匹配 ​反射对效率有影响 慎用!!!​ 1.对象结构 public class Busin...
    99+
    2024-04-02
  • Java如何利用反射对list对象做过滤
    小编给大家分享一下Java如何利用反射对list对象做过滤,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!反射对效率有影响 慎用!!!1.对象结构public class BusinessDep...
    99+
    2023-06-29
  • 怎么在java中利用反射生成对象
    这期内容当中小编将会给大家带来有关怎么在java中利用反射生成对象,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系...
    99+
    2023-06-14
  • 怎么在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 Reflaction in Action中的解释...
    99+
    2023-06-15
  • 怎么在java中利用反射实例化对象
    怎么在java中利用反射实例化对象?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系...
    99+
    2023-06-14
  • 怎么用java反射创建对象
    使用Java反射创建对象需要以下步骤:1. 获取Class对象:首先需要获取要创建对象的类的Class对象。可以通过类名直接调用`C...
    99+
    2023-10-10
    java
  • 怎么用java反射获取对象
    这篇“怎么用java反射获取对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用java反射获取对象”文章吧。本教程操作...
    99+
    2023-06-30
  • Java反射获取对象内容
    通过Java反射获得对象里面的所有字段名以及字段对应的值public static void test(Bean bean) { Field[] fields = bean.getClass().getDeclaredField...
    99+
    2016-02-06
    java教程 Java
  • 详解Java反射创建对象
    一、什么是反射 Java Reflaction in Action中的解释:反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变。通俗的讲就是反射可以在运行时根...
    99+
    2024-04-02
  • Java如何通过反射获取Constructor、Field、Method对象
    目录前言使用反射技术获取构造器对象并使用使用反射技术获取成员变量对象并使用使用反射技术获取方法对象并使用总结前言 在实际开发中,通过反射可以得到一个类的完整结构,包括类的构造方法、类...
    99+
    2024-04-02
  • Java怎么通过反射获取Constructor、Field、Method对象
    这篇文章主要介绍了Java怎么通过反射获取Constructor、Field、Method对象的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么通过反射获取Constructor、Field、Metho...
    99+
    2023-07-02
  • 【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
    本篇主要说明在Java8及以上版本中,使用stream().filter()来过滤List对象,查找符合条件的集合。 一、集合对象定义 集合对象以学生类(Student)为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项。 ...
    99+
    2023-09-01
    java 开发语言 Powered by 金山文档
  • Java反射(Class类,Class对象获取)
    目录Java反射超详解1.反射基础1.1Class类1.2类加载2.反射的使用2.1Class对象的获取 2.2Constructor类及其用法 2.3Field...
    99+
    2024-04-02
  • java使用反射给对象属性赋值
    📢 📢 📢 📣 📣 📣 哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步...
    99+
    2023-09-02
    java 反射 Powered by 金山文档
  • java利用反射机制如何实现获取对象的值
    本篇文章给大家分享的是有关java利用反射机制如何实现获取对象的值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。通过反射机制得到对象中的属性和属性值 在对象中private没问...
    99+
    2023-05-31
    java 反射 对象
  • golang 如何通过反射创建新对象
    废话少说,直接贴代码~ type A struct { Name string } // 测试unit func TestReflect(t *testing.T) { ...
    99+
    2024-04-02
  • golang怎么通过反射创建新对象
    小编给大家分享一下golang怎么通过反射创建新对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!golang适合做什么golang可以做服务器端开发,但gola...
    99+
    2023-06-14
  • java如何根据方法反射对象
    在Java中,可以使用反射机制来获取和使用方法对象。首先,我们需要使用`Class`对象的`getMethod()`方法或`getD...
    99+
    2023-09-08
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作