【问题标题】:How can I write this line in java 1.7 [closed]我如何在 java 1.7 中编写这一行 [关闭]
【发布时间】:2017-08-23 16:18:53
【问题描述】:

如何在 java 1.7 中编写这一行

client.getIndex("users").saveObjectAsync(j, user.getKey(), (jsonObject, e)->{});

【问题讨论】:

  • 有什么问题?
  • Java 7 不支持 lambda。
  • 您可以将 lambda 替换为 anonymous class
  • 是的,我知道,我总是得到以下错误 (jsonObject, e)->{} ,我想要的是与 java 1.7 中的 lambda 表达式等效
  • 更多信息可能会有用。我们正在看的这条线是什么?它属于什么?它应该怎么做?看到您不知道如何将其移植到 Java 7,我假设您没有编写该行,而是从一些使用 Java 8 语法的教程中获得的?如果可以,可以发一下链接吗?

标签: android lambda java-7


【解决方案1】:

正如@yshavit 所说,您必须将 lambda 表达式替换为单方法接口的匿名类。

interface LambdaReplacement {
    void someMethod(SomeJsonType jsonObject, AMysteriousE e);
}

当然,您需要知道函数的 2 个输入的类型;)

然后在你的代码中

client.getIndex("users").saveObjectAsync(j, user.getKey(), new LambdaReplacement() {
    @Override
    public void someMethod(SomeJsonType jsonObject, AMysteriousE e) {
        // whatever you want to actually do with it
        // or just nothing if you really want the behavior (jsonObject, e)->{}
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多