我试图在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);
但是,我无法看到/访问&#34; getResult&#34; Java中的方法。这是scala限制还是我错过了什么?
谢谢!
编辑:
我尝试了这个solution,但似乎没有效果。任何使用java.util.List作为参数或结果的方法都不能在java代码中使用。
忘记提及编译器信息。我使用带有scala版本2.10.3的maven-scala-plugin版本2.15.2
编辑:
好的,正如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参数定义。
答案 0 :(得分:0)
这似乎是一个IDE问题。由于有翼飞行员,我探索了一种不同的方法。我正在使用可用的Scala插件使用Netbeans 8.0。当我使用Java集合作为参数或返回类型时,IDE不会识别这些方法,这意味着它们不会出现在代码提示中,并且它们会被标记为好像它们没有被定义。我可以编译代码忽略那些代码警告并按预期工作。