【问题标题】:java.util.list as parameter in scala class method to be used in Java codejava.util.list 作为 Scala 类方法中的参数,用于 Java 代码
【发布时间】:2014-04-24 19:43:10
【问题描述】:

我正在尝试在 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 参数定义被忽略了。

【问题讨论】:

  • 您遇到什么错误? '我无法在 Java 中看到/访问“getResult”方法'是什么意思?
  • 没有错误,它根本不是一个可访问/可用的方法,这意味着我可以使用 'setParameter("something")' 但我不能使用 getResult(未找到方法/符号)。这就像试图使用尚未定义的方法。感谢您的关注。
  • 是您的 IDE 还是 Java 编译器产生的 not found 错误?
  • IDE。 Netbeans 8.0 使用 scala 插件。
  • 尝试编写代码并查看 Java 编译器是否接受它。如果是 IDE 问题或其他问题,这将让我们缩小范围。

标签: java scala


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-09-03
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    相关资源
    最近更新 更多