java - 如何在 kotlin 中使用 MapBuilder 并添加所有值?

标签 java arrays kotlin

我正在尝试在 kotlin 的 bamboo spec 中转换/添加以下 java 代码,但出现错误。有人可以告诉我如何在 Kotlin 中使用它吗?如何在他们在 java 中使用的 kotlin 中使用 mapbuilder。

new AnyTask(new AtlassianModule("ch.mibex.bamboo.sonar4bamboo:sonar4bamboo.gradletask"))
                                    .description("Sonar Gradle")
                                    .configuration(new MapBuilder()
                                            .put("chosenSonarConfigId", "1")
                                            .put("useGradleWrapper", "true")
                                            .put("useNewGradleSonarQubePlugin", "true")
                                            .put("sonarJavaSource", "")
                                            .put("sonarProjectName", "")
                                            .put("buildJdk", "JDK")
                                            .put("gradleWrapperLocation", "${bamboo.build.working.directory}\\XYZ\\gradlew.bat")
                                            .put("sonarLanguage", "")
                                            .put("sonarSources", "")
                                            .put("useGlobalSonarServerConfig", "true")
                                            .put("failBuildForBrokenQualityGates", "")
                                            .put("sonarTests", "")
                                            .put("failBuildForSonarErrors", "")
                                            .put("sonarProjectVersion", "")
                                            .put("sonarBranch", "")
                                            .put("executable", "")
                                            .put("illegalBranchCharsReplacement", "_")
                                            .put("sonarJavaTarget", "")
                                            .put("environmentVariables", "")
                                            .put("replaceSpecialBranchChars", "")
                                            .put("additionalProperties", "")
                                            .put("autoBranch", "")
                                            .put("sonarProjectKey", "")
                                            .put("overrideSonarBuildConfig", "")
                                            .put("workingSubDirectory", "XYZ")
                                            .build()))

我想我需要在 kotlin 中使用 MapBuilder 但我不知道如何使用它和所有值

In kotlin

         AnyTask(AtlassianModule("ch.mibex.bamboo.sonar4bamboo:sonar4bamboo.gradletask"))
            .description("Sonar Gradle").configuration(MapBuilder()
              .put("chosenSonarConfigId", "1")
              .put("useGradleWrapper", "true")
              .put("useNewGradleSonarQubePlugin", "true")
              .put("sonarJavaSource", "")
              .put("sonarProjectName", "")
              .put("buildJdk", "JDK")
              .put("gradleWrapperLocation", "\${bamboo.build.working.directory}/gradlew.bat")
              .put("sonarLanguage", "")
              .put("sonarSources", "")
              .put("useGlobalSonarServerConfig", "true")
              .put("failBuildForBrokenQualityGates", "")
              .put("sonarTests", "")
              .put("failBuildForSonarErrors", "")
              .put("sonarProjectVersion", "")
              .put("sonarBranch", "")
              .put("executable", "")
              .put("illegalBranchCharsReplacement", "_")
              .put("sonarJavaTarget", "")
              .put("environmentVariables", "")
              .put("replaceSpecialBranchChars", "")
              .put("additionalProperties", "")
              .put("autoBranch", "")
              .put("sonarProjectKey", "")
              .put("overrideSonarBuildConfig", "")
              .put("workingSubDirectory", "")
              .build())

最佳答案

要解决这个问题,您应该按照建议指定类型:

configuration(MapBuilder<String,String>().put...

但是,在 Kotlin 中有一个更直接的方法,使用它的 mapOf:

 mapOf("chosenSonarConfigId" to "1",
        "useNewGradleSonarQubePlugin" to "true",
        "sonarJavaSource" to "true"
         //...
)

关于java - 如何在 kotlin 中使用 MapBuilder 并添加所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45742514/

相关文章:

javascript - 如何使用事件处理程序连续循环遍历数组列表(从末尾恢复到开头)

java - JDom 空指针异常

java - 如何运行使用 Play Framework 应用程序数据库的命令行 scala 脚本?

ruby - 如何在 Ruby 中原生实现像 [] 这样的方法?

arrays - scala 中的 groupBy 多个键

spring-boot - 从 Spring WebFlux 返回 Flux<String> 返回一个字符串而不是 JSON 中的字符串数组

android - 错误 : com. app.android.dagger.component.AppComponent (unscoped) may not reference scoped bindings:

java - mypackage :layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView 中的二进制 XML 文件第 18 行

java - Java中如何将负数转换为基数

java - 如何评论已经包含/* 评论的整个代码块(Java)?