玩无法将java列表转换为scala列表

玩无法将java列表转换为scala列表,java,scala,playframework,playframework-2.0,Java,Scala,Playframework,Playframework 2.0,我试图将字符串列表从java控制器传递到scala模板。 这是视图代码: public static Result index() { List<String> scripts = Arrays.asList( "script1.js", ... "scriptN.js" ); return ok(views.html.index.render(scripts)); } 我在Typesafe激活编译页面中遇到

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

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

    return ok(views.html.index.render(scripts));
}
我在Typesafe激活编译页面中遇到的错误:

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

有没有不使用java>scala转换的方法来解决这个问题? 我发现了这个问题:它描述了一个类似的情况,虽然我没有意识到任何templateImports,但我甚至没有看到Build.scala文件

有什么想法吗? 谢谢

试试下面的方法:

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));
}
请尝试以下内容:

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));
}

请尝试以下模板代码:

@import java.util   
@(scripts: util.List[String])

请尝试以下模板代码:

@import java.util   
@(scripts: util.List[String])

谢谢没有toList方法,有asScala,但它返回BufferOh。没关系,我只需要两者都用。。。JavaConverters.asScalaBufferConverterscripts.asScala。toList@NitzanTomer对不起,这是个错误。是阿斯卡拉·托利斯特。这会有用的,谢谢。我会给它多一点时间,因为如果有更好的方法,我宁愿避免使用JavaConverter!。如果没有更好的答案,我会把你的答案记为正确答案。谢谢!没有toList方法,有asScala,但它返回BufferOh。没关系,我只需要两者都用。。。JavaConverters.asScalaBufferConverterscripts.asScala。toList@NitzanTomer对不起,这是个错误。是阿斯卡拉·托利斯特。这会有用的,谢谢。我会给它多一点时间,因为如果有更好的方法,我宁愿避免使用JavaConverter!。如果没有更好的答案出现,我会将你的答案标记为正确答案。可能重复@om nom nom我的问题是在游戏的上下文中!框架,另一个不是。。。正如我写的,如果有剧本,我想避免使用转换器!做事的方式。正因为如此,我不认为它是重复的。@om nom nom它是不同的。在这里,他希望从Java访问Scala集合,而不是像本文中提到的那样从Java访问Scala集合link@Jatin无论使用哪种语言,他在接收端都有一个Scala列表,并试图将java列表推入其中。我看不出这与尝试以类似scala的方式迭代java列表有什么不同,即使他有相反的情况,它仍然很可能是重复的。您可以使用@scripts:java.util.list[String]并在需要时在那里转换它吗?导入JavaConverters后,它应该是scripts.asScala.toList。\可能是@om nom nom的重复。我的问题是在游戏的上下文中!框架,另一个不是。。。正如我写的,如果有剧本,我想避免使用转换器!做事的方式。正因为如此,我不认为它是重复的。@om nom nom它是不同的。在这里,他希望从Java访问Scala集合,而不是像本文中提到的那样从Java访问Scala集合link@Jatin无论使用哪种语言,他在接收端都有一个Scala列表,并试图将java列表推入其中。我看不出这与尝试以类似scala的方式迭代java列表有什么不同,即使他有相反的情况,它仍然很可能是重复的。您可以使用@scripts:java.util.list[String]并在需要时在那里转换它吗?导入JavaConverters后,它应该是scripts.asScala.toList。