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

时间:2014-04-24 19:43:11

标签: 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);

但是,我无法看到/访问&#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参数定义。

1 个答案:

答案 0 :(得分:0)

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