我认为没有人会拒绝Java 8引入的Lambda表达式的有用性。但是,许多项目都停留在Java 7甚至旧版本上。 升级可能既耗时又昂贵。 如果第三方组件与Java 8不兼容,则可能根本无法升级。

除此之外,整个Android平台都停留在Java 6和7上。

尽管如此,Lambda表达式仍然有希望!

Retrolambda为Java 5、6和7提供了Lambda表达式的反向移植。

从Retrolambda文档中:

Retrolambda使您可以在Java 7或更低版​​本上运行带有lambda表达式和方法引用的Java 8代码。 它通过转换Java 8编译的字节码来做到这一点,以便它可以在Java 7运行时上运行。 转换后,它们只是一堆普通的.class文件,没有任何其他运行时依赖项。

要运行Retrolambda,可以使用Maven或Gradle插件。

如果要在Android上使用Lambda表达式,则只需将以下行添加到gradle构建文件中:

<project> /build.gradle

buildscript {dependencies {classpath 'me.tatarka:gradle-retrolambda:2.4.0'    }
}

<project> /app/build.gradle

apply plugin: 'com.android.application'// Apply retro lambda plugin after the Android plugin
apply plugin: 'retrolambda' android {compileOptions {// change compatibility to Java 8 to get Java 8 IDE support  sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
}

翻译自: https://www.javacodegeeks.com/2015/03/using-java-8-lambda-expressions-in-java-7-or-older.html

在Java 7或更早版本中使用Java 8 Lambda表达式相关推荐

  1. lambda表达式_在Java 7或更早版本中使用Java 8 Lambda表达式

    lambda表达式 我认为没有人会拒绝Java 8引入的Lambda表达式的有用性.但是,许多项目都停留在Java 7甚至旧版本上. 升级可能既耗时又昂贵. 如果第三方组件与Java 8不兼容,则可能 ...

  2. Android Studio TV开发教程(十五) Android N及更早版本中的建议

    Android Studio TV开发教程 (转自Android官网https://developer.android.com/training/tv/start) 文章源自:光谷佳武 https:/ ...

  3. Java 10及更高版本的思考

    大家好 Java 10于2018年3月20日发布.我认为许多软件团队将阻止升级. 从Java 8到Java 9的专业人员人数可能还更少.为什么会这样,原因是传统的障碍以及对应用程序服务器,框架甚至是云 ...

  4. linux数据泄露,Linux Kernel 5.9.1 及更早版本发现数据泄露和特权升级漏洞,需尽快升级...

    新酷产品第一时间免费试玩,还有众多优质达人分享独到生活经验,快来新浪众测,体验各领域最前沿.最有趣.最好玩的产品吧~!下载客户端还能获得专享福利哦! 原标题:Linux Kernel 5.9.1 及更 ...

  5. 棉花糖多少钱_如何在6.0棉花糖及更高版本中访问Android的正在运行的应用程序列表...

    棉花糖多少钱 In Android 5.x and below, accessing your list of running apps was simple-you'd jump into Sett ...

  6. Visual Studio 2019 及更低版本中 Microsoft C++ 编译器对 C++ ISO 标准支持情况

    微软官方网址:https://docs.microsoft.com/zh-cn/cpp/overview/visual-cpp-language-conformance?view=vs-2019 本主 ...

  7. ios 查找朋友 android,在 iOS 12 或更低版本中设置和使用“查找我的朋友”

    如果您使用的是 iOS 13.iPadOS.macOS Catalina 或更高版本,则"查找"App 已将"查找我的 iPhone"和"查找我的朋友 ...

  8. java coin介绍_代码示例中的Java 7:Project Coin

    java coin介绍 该博客通过代码示例介绍了一些新的Java 7功能,这些项目在Project Coin一词下进行了概述. Project Coin的目标是向JDK 7添加一组小的语言更改.这些更 ...

  9. Java学习记录五(多线程、网络编程、Lambda表达式和接口组成更新)

    Java学习记录五(多线程.网络编程.Lambda表达式和接口组成更新) Java 25.多线程 25.1实现多线程 25.1.1进程 25.1.2线程 25.1.3多线程的实现 25.1.4设置和获 ...

最新文章

  1. 飞机的“黑色十分钟”能被人工智能消灭吗?
  2. android 虚拟机快捷键中英列表
  3. ios请求php接口失败,laravel,php_iOS调用Laravel接口返回错误信息,laravel,php,ios - phpStudy...
  4. 到亿位的金额小写转大写JS代码
  5. uva11029 - Leading and Trailing
  6. test.php.bak,MongoDB热备份工具:解决官方版备份缺陷
  7. Mysql数据中文乱码问题处理
  8. matlab simulink_简单五步实现 MATLAB/Simulink 锂电池建模
  9. 构建第一个fabric网络
  10. 博文视点大讲堂第20期——Windows 7来了
  11. 18. JavaScript event 对象
  12. how to get keyboard key with non blocking in terminal
  13. Python获取实时的时间
  14. 如何更改Eclipse中Properties文件编码格式
  15. vFORUM 2018,开启多云未来
  16. 项目管理 : 如何做好建筑工程的施工成本管理
  17. 湖南科技大学2018年C语言程序设计实验题——问题 J: 成绩统计
  18. https请求调用工具类
  19. P1488 肥猫的游戏 题解
  20. Git将分支代码合并到主干/将主干代码合并到分支

热门文章

  1. java基础的知识点(一)
  2. ssh(Spring+Spring mvc+hibernate)——applicationContext-servlet.xml
  3. Springmvc入门案例(1)
  4. SpringBootAdmin
  5. LocalDateTime与LocalDate之间的相互转换
  6. Linux清理磁盘挂载点方法(亲测有效)
  7. Hystrix---SpringCloud
  8. 堆排序原理及其实现(C++)
  9. NanoHTTPD web server的一个简单荔枝
  10. datagrid获取页面总记录数的方法,datagrid获取页面总记录数为0的解决方法