【发布时间】:2014-02-21 12:12:14
【问题描述】:
我正在尝试将字符串列表从我的 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 页面中):
类索引中的方法渲染不能应用于给定类型;
必需:scala.collection.immutable.List
找到:java.util.List
原因:实际参数 java.util.List 无法通过以下方式转换为 scala.collection.immutable.List 方法调用转换
有没有办法在不使用 java > scala 转换的情况下解决它?
我发现了这个问题:Play doesn't convert java-list to scala-list,它描述了类似的情况,虽然我没有任何我知道的 templateImports,我什至没有看到 Build.scala 文件...
有什么想法吗? 谢谢!
【问题讨论】:
-
@om-nom-nom 我的问题是在 Play 的上下文中!框架,另一个不是...正如我所写,如果有戏,我想避免使用转换器!做事的方式。因此,我认为它不是重复的。
-
@om-nom-nom 不同。在这里,他希望从 Java 访问 Scala 集合,而不是链接中提到的反之亦然
-
@Jatin 他在接收端有 Scala 列表(无论哪种语言),并尝试将 java 列表推入其中。我看不出它与尝试以类似 scala 的方式迭代 java 列表有什么不同(即使他有相反的情况,它仍然很可能是重复的)
-
您可以使用
@(scripts: java.util.List[String])并在需要时将其转换吗?导入JavaConverters._后应该只是scripts.asScala.toList。
标签: java scala playframework playframework-2.0