【发布时间】:2016-03-14 13:02:04
【问题描述】:
我需要用 Java 实现一个返回 Scala Seq 的方法。
但是我遇到了这个错误:
java.util.ArrayList cannot be cast to scala.collection.Seq
到目前为止,这是我的代码:
@Override
public Seq<String> columnNames() {
List<String> a = new ArrayList<String>();
a.add("john");
a.add("mary");
Seq<String> b = (scala.collection.Seq<String>) a;
return b;
}
但是scala.collection.JavaConverters 似乎没有提供转换为Seq 的可能性。
【问题讨论】:
-
如果您尝试在 Java 中使用 Scala 集合做任何事情,您就是在自找麻烦。编写一些使用 scala.collection.JavaConverters 进行转换的 Scala 代码。
-
@TzachZohar 大部分答案都是 scala。我的代码是 Java,它是一个庞大程序的一部分,我无法将这种处理方式外部化...
-
正如@LuigiPlinge 提到的,这不是一个好主意!尝试在此序列上调用方法可能会遇到很多问题,上帝禁止你尝试调用任何需要隐式的东西
-
“它们可能导致意外的行为和性能”在文档中听起来不是很有说服力......尤其是因为下一句建议
JavaConverters“提供相同的 转换”。 :)
标签: java scala seq scala-java-interop