java - 使用 Scala 的集合类型从 Java 调用 Scala 的方法

标签 java scala

我有一个调用 Scala 方法的 Java 代码。

Java端代码:

List<String> contexts = Arrays.asList(initialContext);
ContextMessage c = ContextMessage.load(contexts);

Scala 侧代码:

def load(contexts: List[String]) = ...
    contexts foreach context => 

enter image description here

在这种情况下,我有 scala.collection.immutable.List<String> cannot be applied ...错误信息。

我还需要使上下文的类型尽可能通用(即 Seq),因为加载方法会迭代给定的集合对象来处理某些内容。

def load(contexts: Seq[String]) = ...

如何解决这两个问题?

最佳答案

我只会使用 JavaConversions 并保留我的 Scala 代码 scalatic

 // Scala code
object ContextMessage {
    def load(contexts: Seq[String]) = ???
}

// in your Java code
ContextMessage c = ContextMessage.load(JavaConversions.asScalaBuffer(Arrays.asList(initialContext));

关于java - 使用 Scala 的集合类型从 Java 调用 Scala 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32107259/

相关文章:

java - 为什么 Class.getDeclaredFields() 意外地按字母顺序排序?

java - 我们在 java 的 main() 方法中声明的变量是否被实例化为对象?

scala - Twitter Scalding 中的 SQL Union 等价物

scala - 运行时值的精炼和存在类型

Scala 2.8 mutable.Set 空处理

scala - 有没有办法在 Scala 中抑制*仅*详尽检查?

java - 带有 MAC OS 的 java.awt.Robot 类中的 Headless 环境错误

java - 带有 Spring Boot 和 Spring Security 的 Angular2

java - 更新我的实体时,我的旧实体也会更新

带有 scala setAdapter InvocationTargetException 的 Android