作家
登录

在没有Kotlin的世界与Android共舞

作者: 来源: 2017-05-09 09:02:47 阅读 我要评论

::println); 
  • class Person { 
  •     final private String name
  •     final private int age; 
  •     public Person(String nameint age) { 
  •         this.name = name
  •         this.age = age; 
  •     } 
  •     String getName() { return name; } 
  •     int getAge() { return age; } 
  • 这的确太好了,所以 catch 在哪里? 令人悲哀的是,流大年夜 API 24 才可用。谷歌做了功德,但哪个应用法度榜样有效 minSdkVersion = 24?

    荣幸的是,Android 平台有一个很好的供给很多很棒的库的开源社区。Lightweight-Stream-API 就是个中的一个,它包含了 Java 7 及以下版本的基于迭代器的流实现。

    膳绫擎的例子结合了 Lombok、Retrolambda 和 Lightweight-Stream-API,它看起来几乎和 Kotlin 一样棒。应用静态工厂办法许可您将任何 Iterable 转换为流,并对其应用 lambda,就像 Java 8 流一样。 将静态调用 Stream.of(persons) 包装为 Iterable 类型的扩大函数是完美的,然则 Java 不支撑它。

    扩大函数

    扩大机制供给了向类添加功能而无需持续它的才能。 这个众所周知的概念异常合适 Android 世界,这就是 Kotlin 在该社区很受迎接的原因。

    流也由 Google 经由过程 Jack 编译器供给。 不幸的是,Jack 不应用 Lombok,因为它在编译代码时跳过生成中心的 .class 文件,而 Lombok 却依附于这些文件。

    有没有技巧或魔术将扩大功能添加到你的 Java 对象箱? 因 Lombok,你可以应用它们作为一个实验功能。 根据 Lombok 文档的解释,他们想把它大年夜实验状况移出,根本膳绫腔有什么变更的话很快。 让我们重构最后一个例子,并将 Stream.of(persons) 包装成扩大函数。

    1. import lombok.Data; 
    2. import lombok.experimental.ExtensionMethod; 
    3. @ExtensionMethod(Streams.class) 
    4. public class Foo { 
    5.     void foo(List<Person> persons) { 
    6.         persons.toStream() 
    7.                .filter(it -> it.getAge() >= 21) 
    8.                .filter(it -> it.getName().startsWith("P")) 
    9.                .map(Person::getName) 
    10.                .sorted() 
    11.                .forEach(System.out::println); 
    12.     } 
    13. @Data class Person { 
    14.     final String name
    15.     final int age; 
    16. class Streams { 
    17.     static <T> Stream<T> toStream(List<T> list) { 
    18.         

        推荐阅读

        避免在云迁移过程中宕机

      在公共云迁徙时代,IT团队须要采取谨慎的步调,以避免听到“体系宕机”这种恐怖的提示。跟着组织迁徙到基于云计算的基本举措措施,IT团队须要在迁徙过程中保持可用性。然则,推>>>详细阅读


      本文标题:在没有Kotlin的世界与Android共舞

      地址:http://www.17bianji.com/lsqh/35085.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)