玩无法将java列表转换为scala列表
我试图将字符串列表从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激活编译页面中遇到
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。