- import lombok.Data;
- import com.annimon.stream.Stream;
- void foo(List<Person> persons) {
- Stream.of(persons)
- .filter(it -> it.getAge() >= 21)
- .filter(it -> it.getName().startsWith("P"))
- .map(Person::getName)
- .sorted()
- .forEach(System.out::println);
- }
- @Data class Person {
- final String name;
- final int age;
- }
- button.setOnClickListener(view -> System.out.println("Hello World!"));
如何应用它们?就只用添加下面几行到你的 build.gradle 文件中。
- defaultConfig {
- jackOptions {
- enabled true
- }
- }
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
如不雅你不爱好用 Jack 编译器,或者你因为一些原因不克不及应用它,这里有一个不合的解决筹划供给给你。Retrolambda 项目许可你在 Java 7,6 或者 5 上运行带有 lambda 表达式的 Java 8 代码,下面是设置过程。
- dependencies {
- classpath 'me.tatarka:gradle-retrolambda:3.4.0'
- }
- apply plugin: 'me.tatarka.retrolambda'
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
正如我前面提到的,在 Kotlin 下的 lambda 内联函数不增长办法计数,然则如安在 Jack 或者 Retrolambda 下应用它们呢? 显然,它们不是没成本的,隐蔽的成本如下。
该表展示了应用不合版本的 Retrolambda 和 Jack 编译器生成的办法数量。该比较结不雅来自 Jake Wharton 的“摸索 Java 的隐蔽成本” 技巧评论辩论之中。
数据操作
Kotlin 惹人了高阶函数作为流的替代。 当您必须将一组数据转换为另一组数据或过滤集应时,它们异常有效。
- void foo(List<Person> persons) {
- persons.stream()
- .filter(it -> it.getAge() >= 21)
- .filter(it -> it.getName().startsWith("P"))
- .map(Person::getName)
- .sorted()
- .forEach(System.out
推荐阅读
在公共云迁徙时代,IT团队须要采取谨慎的步调,以避免听到“体系宕机”这种恐怖的提示。跟着组织迁徙到基于云计算的基本举措措施,IT团队须要在迁徙过程中保持可用性。然则,推>>>详细阅读
地址:http://www.17bianji.com/lsqh/35085.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示