java.util.list 作为 scala 类方法中的参数在 Java 代码中使用

标签 java scala

我正在尝试在 scala 中做这样的事情:

class SessionObject {
 def setParameter(parameterOne : String): Unit = {
 //Doing some stuff
 }
 def getResult(javaListParameter: java.util.List[String]): JsonObject = {
 //doing some stuff
 }
}

编译完 scala 代码后,我尝试在 Java 中将其用作库。像这样的事情:

SessionObject object = new SessionObject();
object.setParameter("Something");
List<String> theList = new ArrayList<String>();
object.getResult(theList);

但是,我无法查看/访问 Java 中的“getResult”方法。这是 scala 的限制还是我遗漏了什么?

谢谢!

编辑:

我试过这个solution ,但似乎不起作用。任何使用 java.util.List 作为参数或结果的方法都不能在 java 代码中使用。

忘记提及编译器信息。我正在使用 maven-scala-plugin 版本 2.15.2 和 scala 版本 2.10.3

编辑:

好吧,按照 wingedsubmariner 的建议,我忽略了 IDE 预编译提示并进行了编译。现在我得到了这个:

method com.*.*.*.*.SessionObject.getResult(java.lang.String,scala.collection.immutable.List<java.lang.String>,java.lang.String,scala.collection.immutable.List<java.lang.String>) is not applicable
      (actual argument java.util.List<java.lang.String> cannot be converted to scala.collection.immutable.List<java.lang.String> by method invocation conversion)
    method com.*.*.*.*.SessionObject.getResult(java.lang.String,java.util.ArrayList<java.lang.String>,java.lang.String,java.util.ArrayList<java.lang.String>) is not applicable
      (actual argument java.util.List<java.lang.String> cannot be converted to java.util.ArrayList<java.lang.String> by method invocation conversion)

这似乎告诉我 java.util.List 参数定义在某种程度上被忽略了。

最佳答案

看来是 IDE 问题。感谢 wingedsubmariner,我探索了一种不同的方法。我正在使用 Netbeans 8.0,并使用可用的 Scala 插件。当我使用 Java 集合作为参数或返回类型时,IDE 无法识别这些方法,这意味着它们不会出现在代码提示中,并且会被标记为未定义。我可以编译代码,忽略这些代码警告并按预期工作。

关于java.util.list 作为 scala 类方法中的参数在 Java 代码中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23278349/

相关文章:

java - 以编程方式创建 Android 滚动列表

java - 从 Java 7 迁移到 Java 8,迭代时间长的问题

java - 范围类 : java interoperability

scala - 尽管@specialized,由于类型删除导致重复方法

scala - 如何合并左两个列表?

scala - 如何在scala中保存RandomForestClassifier Spark模型?

java - 如何知道当前的递归级别?

java - 为什么我的代码会导致编译错误?

java - 函数不会改变java中变量的值?

python - 使用 scalapy 对运行 python 代码的 Scala 应用程序进行 docker 化时出现错误 'Unable to load python3'