Java - 使用版本或转换修复 lambda 表达式

Posted

技术标签:

【中文标题】Java - 使用版本或转换修复 lambda 表达式【英文标题】:Java - fix lambda expression either with version or conversion 【发布时间】:2021-11-15 06:33:23 【问题描述】:

我正在尝试将自定义电容器插件添加到我的 android 应用程序中。适用于ios,目前我正在将其集成到android中。

我不是 Java 开发人员,我的 Java 知识已经相当老了。 与 throws 一起构建插件的应用程序的构建步骤

        request.addOnCompleteListener(task -> 
                                           ^
  (use -source 8 or higher to enable lambda expressions)
    我可以在哪里将我的 ionic 项目中的 Java 版本提高到 8 以使用 lambdas 构建? 如何使它与-source 7 兼容?
        Activity activity = this.cordova.getActivity();
        ReviewManager manager = ReviewManagerFactory.create(activity);
        Task<ReviewInfo> request = manager.requestReviewFlow();


        request.addOnCompleteListener(task -> 

            if (task.isSuccessful()) 
                ReviewInfo reviewInfo = task.getResult();
                Task<Void> flow = manager.launchReviewFlow(activity, reviewInfo);
                flow.addOnCompleteListener(launchTask -> 
                    if (task.isSuccessful()) 
                        callbackContext.success();
                     else 
                        Exception error = task.getException();
                        callbackContext.error("Failed to launch review - " + error.getMessage());
                    
                );
             else 
                Exception error = task.getException();
                callbackContext.error("Failed to launch review flow - " + error.getMessage());
            

        );

代码基于 https://developer.android.com/guide/playcore/in-app-review/kotlin-java#java

【问题讨论】:

【参考方案1】:

您需要为项目设置Java版本。

build.gradle

https://developer.android.com/studio/write/java8-support

【讨论】:

谢谢!我的文件中没有android? ``` buildscript 存储库 google() jcenter() 依赖项 类路径 'com.android.tools.build:gradle:3.6.1' 类路径 'com.google.gms:google-services:4.3.3' //注意:不要将您的应用程序依赖项放在这里;它们属于 // 在单个模块 build.gradle 文件中 适用于:“variables.gradle” allprojects repositories google() jcenter() task clean(type: Delete) delete rootProject.buildDir ``` 已修复,我必须调整插件中的build.gradle。谢谢!

以上是关于Java - 使用版本或转换修复 lambda 表达式的主要内容,如果未能解决你的问题,请参考以下文章

匿名方法和Lambda表达式

如何修复不再支持 AWS Lambda nodejs8.10 错误

如何使用 Lambda 或 Linq 将匿名类型转换为原始类型成员

配置Java AWS Lambda使用的Objectmapper

如何使用带有可分页的 mongorepository 修复转换错误

如何使用 Java 8 Lambda 将对象列表转换为 Map<Object, Object>