最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java利用反射對(duì)list對(duì)象做過濾

 更新時(shí)間:2022年03月25日 14:30:05   作者:峰啊瘋了  
這篇文章主要介紹了Java利用反射對(duì)list對(duì)象做過濾,但是使用反射對(duì)效率有影響,但在一些特殊情況也有一定的參考價(jià)值,需要的小伙伴可以參考一下

#yyds干貨盤點(diǎn)#利用反射對(duì)list對(duì)象做過濾_sed

?反射對(duì)效率有影響 慎用?。?!?

1.對(duì)象結(jié)構(gòu)

public class BusinessDept {
private String year;//年
private String month;//月
private String deptName;//部門名稱
private String deptLeader;//部門負(fù)責(zé)人
private Double jyz; //經(jīng)營(yíng)值
private Double rev; //收入
private Double exp; //支出
private Double tWorkTime; //填報(bào)工時(shí)
private Double sWorkTime; //標(biāo)準(zhǔn)工時(shí)
private Double param; //經(jīng)營(yíng)參數(shù)

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.根據(jù)字段名獲取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.對(duì)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;
}

到此這篇關(guān)于Java利用反射對(duì)list對(duì)象做過濾的文章就介紹到這了,更多相關(guān)list對(duì)象過濾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot中的@Configuration注解詳解

    SpringBoot中的@Configuration注解詳解

    這篇文章主要介紹了SpringBoot中的@Configuration注解詳解,Spring Boot推薦使用JAVA配置來完全代替XML 配置,JAVA配置就是通過 @Configuration和 @Bean兩個(gè)注解實(shí)現(xiàn)的,需要的朋友可以參考下
    2023-08-08
  • Java利用iTextPDF庫實(shí)現(xiàn)制作PDF表格模板并填充數(shù)據(jù)

    Java利用iTextPDF庫實(shí)現(xiàn)制作PDF表格模板并填充數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了如何通過Java的iTextPDF庫制作一個(gè)PDF表格模板并填充數(shù)據(jù),文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2023-12-12
  • 簡(jiǎn)單了解JavaCAS的相關(guān)知識(shí)原理

    簡(jiǎn)單了解JavaCAS的相關(guān)知識(shí)原理

    這篇文章主要介紹了簡(jiǎn)單了解JavaCAS的相關(guān)知識(shí),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java中的Static class詳解及實(shí)例代碼

    Java中的Static class詳解及實(shí)例代碼

    這篇文章主要介紹了 Java中的Static class詳解及實(shí)例代碼的相關(guān)資料,在Java中我們可以有靜態(tài)實(shí)例變量、靜態(tài)方法、靜態(tài)塊。類也可以是靜態(tài)的,需要的朋友可以參考下
    2017-03-03
  • Java中枚舉類enum的values()方法舉例詳解

    Java中枚舉類enum的values()方法舉例詳解

    這篇文章主要給大家介紹了關(guān)于Java中枚舉類enum的values()方法舉例詳解,作為一種常用方法,可以在枚舉中對(duì)數(shù)組里的枚舉值進(jìn)行遍歷,這就是values()方法的使用,需要的朋友可以參考下
    2023-11-11
  • Spring Boot實(shí)現(xiàn)發(fā)送郵件

    Spring Boot實(shí)現(xiàn)發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了Spring Boot實(shí)現(xiàn)發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 詳解Spring如何避免被JVM 垃圾回收

    詳解Spring如何避免被JVM 垃圾回收

    如果Spring 被回收掉,Spring管理的bean全部會(huì)被回收,那我們的Java應(yīng)用不就被一鍋端了嗎?所以本文小編將和大家一起聊聊Spring如何避免被JVM垃圾回收,需要的朋友可以參考下
    2023-11-11
  • java中的構(gòu)造函數(shù)什么時(shí)候被調(diào)用執(zhí)行

    java中的構(gòu)造函數(shù)什么時(shí)候被調(diào)用執(zhí)行

    這篇文章主要介紹了java中的構(gòu)造函數(shù)什么時(shí)候被調(diào)用執(zhí)行問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • java并發(fā)編程之進(jìn)程和線程調(diào)度基礎(chǔ)詳解

    java并發(fā)編程之進(jìn)程和線程調(diào)度基礎(chǔ)詳解

    這篇文章主要介紹了java并發(fā)編程之進(jìn)程和線程調(diào)度基礎(chǔ),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Springboot集成swagger實(shí)現(xiàn)方式

    Springboot集成swagger實(shí)現(xiàn)方式

    這篇文章主要介紹了Springboot集成swagger實(shí)現(xiàn)方式,通過簡(jiǎn)單的示例代碼詳細(xì)描述了實(shí)現(xiàn)過程步驟,有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-08-08

最新評(píng)論

扶风县| 定襄县| 古丈县| 甘孜县| 西峡县| 梁河县| 云龙县| 吉木乃县| 尚志市| 孟津县| 金川县| 元江| 石嘴山市| 奉新县| 北宁市| 龙井市| 四子王旗| 连山| 广德县| 涞源县| 重庆市| 上栗县| 陵水| 额尔古纳市| 临清市| 大同县| 漳州市| 石门县| 镇远县| 新民市| 兴城市| 嘉祥县| 英德市| 金塔县| 蓬溪县| 新密市| 崇仁县| 崇仁县| 柘荣县| 叶城县| 桃园市|