Lambda表达式实用

public List<SettlementExportView> querySettlementExport(SettlementDemandQueryReq req) {
    JdbcQuery.Builder queryBuilder = JdbcQuery.from(SettlementExportView.class);
    SettlementExportViewMetaData md = SettlementExportViewMetaData.instance;
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    //开始结束日期
    querySettleCondition(req, DemandViewEntityMetaData.instance, queryBuilder);

    List<SettlementExportView> list = InstanceFactory.getInstance(SettlementExportViewDao.class).query(queryBuilder.build());
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    return list.stream()
        .filter(input -> input.getScore()!=null && input.getScore() > 0)
        .map(view -> {
          if (view.getUploadQuantity() == null) {
            view.setUploadQuantity(0d);
          }
          if (view.getFinishQuantity() == null) {
            view.setFinishQuantity(0d);
          }
          switch (view.getStatus()) {
            case SETTLEMENT:
              view.setStatusName("已结算");
              view.setSettlePeriod(dateFormat.format(view.getSettlementDate()));
              break;
            case FINISH:
              if (view.isNeedCheck()) {
                view.setNeedCheckStr("Y");
              }else{
                view.setNeedCheckStr("N");
              }
              if (view.getSettlementDate() != null) {
                view.setStatusName("已结算");
                view.setSettlePeriod(dateFormat.format(view.getSettlementDate()));
              }
              break;
            default:
              view.setStatusName("未结算");
              view.setFinishDate(null);
          }
          return view;
        })
        .collect(Collectors.toList());

  }
时间: 2024-07-29 08:24:52

Lambda表达式实用的相关文章

【Java学习笔记之三十一】详解Java8 lambda表达式

Java 8 发布日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里.在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出.Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码.这样有时可读性更好,表达更清晰.在Java生态系统中,函数式表达与对面向对象的全面支持是个激动人心的进步.将进一步促进并行

Java8 lambda表达式10个示例

本文由 ImportNew Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里.在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出.Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码.这样有时可读性更好,表达更清晰.在Java生态系统中,函数式表达与对面向对象的全面

LINQ(隐式表达式、lambda 表达式)

.NET 中一项突破性的创新是 LINQ(Language Integrated Query,语言集成查询),这组语言扩展让你能够不必离开舒适的 C# 语言执行查询. LINQ 定义了用于构建查询表达式的关键字.这些查询表达式能够对数据进行选择.过滤.排序.分组和转换.借助各种 LINQ 扩展,你可以对不同的数据源使用相同的查询表达式.        虽然你可以在任意地方使用 LINQ ,但是只有 ASP.NET 应用程序中最可能把 LINQ 用作数据库组件的一部分.你可以和 ADO.NET 数

Java8 Lambda表达式介绍 -- 写给Guava使用者

Guava Guava是Google公司开源的一个实用工具库,对Java类库进行了多方面的增强.比如说,对函数式编程的支持,新的集合类(Multimap等),Cache支持,等等.在Java8之前,Guava和Java之间的关系,可以表示成下面这幅图: 但是随着Java8的发布,Guava和Java的关系发生了一些改变.Guava提供的很多功能,被内置在了Java8里,如下图所示: 本文举了几个例子,用代码来说明原先需要借助Guava来实现的功能,如何用Java7或Java8实现. Joiner

Java 8 Lambda表达式10个示例【存】

PS:不能完全参考文章的代码,请参考这个文件http://files.cnblogs.com/files/AIThink/Test01.zip 在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出.Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码.这样有时可读性更好,表达更清晰.在Java生态系统中,函数式表达与对面向对象的全面支持是个激动人心的进步.将进一步促进并行第三方库的发展,充分利用多核CPU.尽

Java 8 lambda表达式20180404

Java 8 lambda表达式示例 我个人对Java 8发布非常激动,尤其是lambda表达式和流API.越来越多的了解它们,我能写出更干净的代码.虽然一开始并不是这样.第一次看到用lambda表达式写出来的Java代码时,我对这种神秘的语法感到非常失望,认为它们把Java搞得不可读,但我错了.花了一天时间做了一些lambda表达式和流API示例的练习后,我开心的看到了更清晰的Java代码.这有点像学习泛型,第一次见的时候我很讨厌它.我甚至继续使用老版Java 1.4来处理集合,直到有一天,朋

Effective Java 第三版——42.lambda表达式优于匿名类

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 42.lambda表达式优于匿名类 在Java 8中,添加了函数式接口,lambda表达式和方法引用,以便更容易地创建函数对象. Stream API随着其他语言的修改一同

利用 Lambda 表达式实现 Java 中的惰性求值

Java 中惰性求值的潜能,完全被忽视了(在语言层面上,它仅被用来实现 短路求值 ).更先进的语言,如 Scala,区分了传值调用与传名调用,或者引入了 lazy 这样的关键字. 尽管 Java 8 通过延迟队列的实现(java.util.stream.Stream)在惰性求值的方面有些改进,但是我们会先跳过 Stream,而把重点放在如何使用 lambda 表达式实现一个轻量级的惰性求值. 基于 lambda 的惰性求值 Scala 当我们想对 Scala 中的方法参数进行惰性求值时,我们用"

Java8:Lambda表达式增强版Comparator和排序

1.概述 在这篇教程里,我们将要去了解下即将到来的JDK 8(译注,现在JDK 8已经发布了)中的Lambda表达式--特别是怎样使用它来编写Comparator和对集合(Collection)进行排序. 这篇文章是Baeldung上的"Java --回归基础"("Java – Back to Basic")系列的一部分. 首先,让我们先定义一个简单的实体类: public class Human { private String name; private int