小编典典

玩!无法将Java列表转换为Scala列表

java

我试图将字符串列表从我的Java控制器传递到scala模板。
这是视图代码:

public static Result index() {
    List<String> scripts = Arrays.asList(
        "script1.js",
        ...
        "scriptN.js"
    );

    return ok(views.html.index.render(scripts));
}

这是临时代码:

@(scripts: List[String])

@main("test page")(scripts) {
    ... html here ...
}

我遇到的错误(在Typesafe Activation Compile页面中):

类索引中的render方法不能应用于给定的类型;
必需:scala.collection.immutable.List
找到:java.util.List
原因:实际参数java.util.List无法通过方法调用转换转换为scala.collection.immutable.List

有没有解决方法,而无需使用Java> Scala转换?
我发现了这个问题:Play不会将java-list转换为scala-
list,它描述了类似的情况,尽管我没有任何我知道的templateImports导入,但什至看不到Build.scala文件。 。

有任何想法吗?谢谢!


阅读 251

收藏
2020-11-26

共1个答案

小编典典

请尝试以下方法:

import scala.collection.JavaConverters;

public static Result index() {
    List<String> scripts = Arrays.asList(
        "script1.js",
        ...
        "scriptN.js"
    );
    scala.collection.immutable.List<String> ls = JavaConverters.asScalaBufferConverter(scripts).asScala().toList();
    return ok(views.html.index.render(ls));
}
2020-11-26