问题标签 [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.

0 投票
2 回答
139 浏览

android - 在 Retrolambda 中使用“this”关键字

我对这段代码有疑问:

我想将此代码转换为使用这样的 lambda 表达式:

但它不会工作,因为现在this不引用内部类。

0 投票
1 回答
253 浏览

android - 使用 retrolambda 和 Android 时出现 Eclipse 的错误

我们使用 gradle 进行构建,但使用 Eclipse 编写。我的 retrolambda 工作正常,eclipse 看到 lambda 语法并且没问题,gradle 构建和运行完美。

pnly 的问题是 Eclipse 将文件标记为有错误,“包”的“p”用红色下划线,错误

'类型 java.lang.invoke.MethodHandles 无法解析。它是从所需的 .class 文件中间接引用的

有谁知道如何摆脱这个?

0 投票
1 回答
226 浏览

android - AWS 设备场 gradle 插件不适用于 retrolambda

按照指南-设置 AWS Device Farm Gradle 插件,我设置了我的应用程序并运行了,./gradlew devicefarmUpload但遇到了很多错误。经过检查,我意识到,每次我使用 lambda 表达式(通过 Retrolambda)时都会出现错误。

手动将app.apk和上传testing.apk到 AWS Device Farm 可以正常工作。

所有 lambda 表达式的构建都失败,我在下面粘贴其中一个:

0 投票
2 回答
12681 浏览

java - Lambda 表达式 - 不能将 lambda 参数设置为方法的参数

我正在尝试使用retrolambda在 Android 上使用 lambda 表达式。在下面的代码中,我需要添加作为接口的侦听器:

代码

但 Android Studio 将红色loginSuccess( login )loginFail( sr )标记为错误并显示消息“ LoginResponseEntity 无法应用于”和“ ServerResponse 无法应用于
所以我无法将 lambda 参数“ login ”设置为方法loginSuccess(登录)
请帮助我理解这个表达式有什么问题。

0 投票
1 回答
704 浏览

android - Lambda 表达式在 Android Studio 中变回匿名类

当我在Android studio中写一个lambda表达式时,它有时会把自己变成一个普通的匿名类,我不能把它带回来。如何防止 IDE 这样做?原因是什么?

如果我单击绿色突出显示的区域:

在此处输入图像描述

它变成了这样:

在此处输入图像描述

而且没有办法把它带回来。CTRL+Z 没有帮助。我还注意到这发生在 lambda 表达式中完成的某些操作上。例如,我刚刚删除了其中的一些代码,这发生了。这事儿常常发生。

我读到尚不支持 lambda 表达式,我猜 IDE 只是“模拟”一个 lambda 表达式。但我仍然想阻止它更改我的代码。

0 投票
1 回答
123 浏览

java - 没有'retrolambda'语法我怎么写?

我是 100% 的 Java 新手,我正在尝试将 Crashlytics 添加到我的 React Native 项目中。我在互联网上能找到的唯一代码片段是 retrolambda 语法。

我意识到我可以添加那个特定的“库”或其他任何东西,所以它可以工作,但考虑到它是我项目中唯一使用的地方,我宁愿将它转换为“旧格式”,而不是添加一个库只是为了做一个功能.

0 投票
3 回答
13619 浏览

android - 如何在 Android RxJava Observable 中按顺序运行 2 个查询?

我想运行 2 个异步任务,一个接着另一个(按顺序)。我读过一些关于 ZIP 或 Flat 的东西,但我不太了解它......

我的目的是从本地 SQLite 加载数据,完成后,它将查询调用到服务器(远程)。

有人可以建议我,实现这一目标的方法吗?

这是我正在使用的 RxJava Observable 框架(单个任务):

0 投票
1 回答
1858 浏览

android - System.getenv() 没有在 Android Studio 中提取任何环境变量?

我在一个Android项目中使用retrolambda。我在我的 .bashrc 中设置了两个用于导出的 env 变量,即 JAVA7_HOME 和 JAVA8_HOME,它们指向两个 Java SDK 的绝对路径,之后我再次获取 .bashrc。

但是,尝试编译我的项目会给我一个错误。当我打印出 System.getEnv("JAVA7_HOME") 的结果时,我得到了 null。然而,奇怪的是,当我在终端中为变量运行 env 和 grep 时,我会在那里看到它们。最奇怪的是,甚至直接将路径作为字符串分配给 JDK 似乎都不起作用。我已尝试重新启动 Android Studio 和我的计算机,以防万一我对 .bashrc 的更改没有生效,但没有任何效果。

有没有人对这个问题有任何见解,或者我还能尝试什么?我正在为它的价值运行 Mac OS X。

0 投票
1 回答
1728 浏览

java - Android 应用程序 + Java 模块 (Java 1.8)

Android 项目(gradle)有主要的应用程序模块: app - android 应用程序(应用插件:'com.android.application')和 java-module: 网络-(应用插件:'java')

java 模块网络默认具有源代码兼容性 1.8,我真的很想拥有它,因为 lambda 表达式。

但 Android 应用程序默认为 1.7,我无法构建该应用程序。当然,我在我的应用程序中使用了 retrolambda - android 模块,但项目无法编译,因为:

Error:com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)

如果我制作我的 java 模块,一切都会编译好:

但在这种情况下,我不能使用 lambda 表达式,但我需要它。

我只看到下一个解决方案:

  1. 制作网络模块不是java,而是android-module并使用retrolambda(但我要从这个模块制作.jar而不是.aar,所以它必须是java)

  2. 不要在我的 java 模块中使用 lambda 表达式(将来是 .jar)(但我想使用它,因为在没有 lambda 的 rxJava 中太匹配愚蠢的代码)

对我来说最好的解决方案是我的 java 模块中的 retrolambda。我尝试做类似的事情,但是在编译过程中,retroambda 依赖项(应用插件:'me.tatarka.retrolambda')没有受到影响。或者也许使用带有retrolambda之类的java 1.7。但是 gradle 文件没有部分android {...}来设置 compileOptions。

这该怎么做?

0 投票
1 回答
938 浏览

android - 错误:任务 ':app:compileRetrolambdaLiveDebug 执行失败

我在我的项目中使用了这个应用插件:'me.tatarka.retrolambda'。但有时我构建我的项目,android studio 会显示这个错误。而且我不知道该怎么做,只要清理我的项目就可以了。但它浪费时间来清洁。任何人都知道如何解决这个问题。

错误:任务“:app:compileRetrolambdaLiveDebug”执行失败。

启动进程 'command 'C:\Program Files\Java\jdk1.8.0_65\bin\java.exe' 时出现问题