问题标签 [retrolambda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 错误:任务“:cloudsdk:transformClassesWithRetrolambdaForDebug”执行失败
当我将 android studio 更新到 3.0 后运行现有项目代码时,出现以下错误:
错误:任务 ':cloudsdk:transformiClassesWithRetrolambdaForDebug' 执行失败。> 缺少变体的 javaCompileTask:输出目录中的 debug/0:
android - java.lang.NoClassDefFoundError:带有 Android API 23 的 lambda
我想在 Android API 23 上使用方法引用并且卡住了。我尝试了 retrolambda 和其他一些方法,但它仍然不起作用。
我正在使用 java 8 并在 sdk 26 (min 23) 上编译。
这是错误
有没有办法使这项工作?
android - 如何在Android中创建注释代码(作为编译器)的编译时库
我正在尝试创建一个库,例如 retro-lambda,它在编辑时或编译时读取代码并为开发人员提供提示。
假设我正在使用 retro-lambda 库,并且我创建了一个只有一种方法的接口:
当我创建一个实例时:
在这里,retro-lambda 将为开发人员使用 lambda 函数创建一个后盾,如下所示:
关于如何创建检查代码并向用户添加提示的库,我需要了解什么?
java - 硬配置 Retrolambda
我正在尝试将库 retrolambda 添加到我的项目中。在官方网站上,我们有简短的说明,但不起作用:将一些插件添加到 build.gradle。
之后我从 AndroudStudio 错误中得到:
我的 build.gradle:
有什么问题?我应该在这里解决什么?我在互联网上没有找到帮助。当然我可以删除这个 me.tatarka.retrolambda,但是为什么呢?我们在官方网站上看到这个库“你必须添加它”!
java - 如何在 Java 7 中使用 lambda,奇怪的 Retrolambda 不起作用
这很奇怪。在官方文档库retrolambda中,我们可以将其放入自己的gradle中:
但现在当我试图用 lambda 写一些东西时:
我从 AndroidStudio 得到:
当然我可以在我的构建中设置
但这是没有意义的,现在有了 1.8 我不需要 RetroLambda :)
所以问题是如何在 Java 1.7 中使用 lambda?
android - 如何处理那个gradle错误?
这是我的 app.gradle 文件:
它运行正常,没有任何问题,但是当我将 compileSdkVersion 从 23 更新到 27 并删除 apt 代码行时,它会引发无法解析 AndroidManifest.xml 的错误
android - 添加 exoplayer 和打开 java 8 的问题
我正在使用领域和 retrolambda,我想将 exoplayer 添加到我的项目中,它需要 java 8 支持,当我添加编译选项 java 8 并重建项目时,我收到此错误:
我创建了一个测试项目并添加了 exoplayer
,当我添加编译选项 java 8 时,我也添加了jackoption
它,它没有任何问题,但是在我的项目中,我 retrolambda
不允许我添加千斤顶选项,我该怎么办?
android - 如何解决此错误:android-apt 插件与 Android Gradle 插件不兼容
更新后buildToolsVersion 25.0.3 to 28.0.3
,build:gradle:2.3.3 to 3.4.0
我遇到了这些问题;如何解决这些问题 谢谢
- 错误:android-apt插件与 Android Gradle 插件不兼容
- 警告:您使用的插件之一支持 Java 8 语言功能。要尝试内置在 Android 插件中的支持,请从 build.gradle 中删除以下内容: apply plugin: 'me.tatarka.retrolambda'
- 警告:API
'variantOutput.getProcessResources()'
已过时并已替换为'variantOutput.getProcessResourcesProvider()'
. 它将在 2019 年底被删除。
这是我的代码Bulid.gradle(模块:App)
Bulid.gradle(项目:TestProject)
java - 我可以避免 retrolambdas 捕获对封闭类的引用吗?
我通过让我的表单实现来实现历史reconstructor
,这是一种返回 lambda 的方法。它可以很简单
或更复杂的,例如,
没有一个 lambdas 需要访问封闭的实例。这很重要,因为它允许对表单进行垃圾收集。
然而,使用retrolambdas,它们被转换为一个内部类,正如我被告知的那样,它们用作this
对其周围类的引用,因此它们像非静态内部类一样引用其父级。
这是不必要的,IIUIC,retrolambda可以做到这一点:
Lambda 表达式通过将它们转换为匿名内部类来反向移植。这包括对无状态 lambda 表达式使用单例实例的优化,以避免重复的对象分配。
显然,我的第一个片段中的 lambda 是无状态的,尽管如此,它被转换为具有类型实例变量的类MyForm1
。缺少上述优化。
我的第二个片段中的 lambda 有两个实例变量,不需要对封闭类的引用,因此它可以转换为嵌套类,如
有机会解决这个问题吗?