【发布时间】: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 问题或其他问题,这将让我们缩小范围。