从java文件调用scala包函数是不可能的吗?

从java文件调用scala包函数是不可能的吗?,scala,scala-java-interop,Scala,Scala Java Interop,例如,scala.concurrent.promise 对于此类情况,最好的通用解决方法是什么?在scala中定义分派给包函数的实用程序对象/类?将创建名为package的类,并将相关方法作为静态成员。在这种情况下,您需要从Java调用scala.concurrent.package.promise 但是,scala.concurrent.promise已被弃用,请改用scala.concurrent.promise.apply。感谢您提供有关弃用的指针。我仍然无法从java代码中执行此操作。我

例如,scala.concurrent.promise


对于此类情况,最好的通用解决方法是什么?在scala中定义分派给包函数的实用程序对象/类?

将创建名为
package
的类,并将相关方法作为静态成员。在这种情况下,您需要从Java调用
scala.concurrent.package.promise


但是,
scala.concurrent.promise
已被弃用,请改用
scala.concurrent.promise.apply

感谢您提供有关弃用的指针。我仍然无法从java代码中执行此操作。我尝试了“import scala.concurrent.Promise;…Promise p=Promise.apply();”但没有成功。这并不奇怪,因为eclipse报告说它有望成为一个接口。您知道如何用java实例化承诺吗?请尝试导入scala.concurrent.Promise;导入scala.concurrent.Promise$。。。Promise p=Promise$.MODULE$.apply()。接口不能有静态方法,因此Scala不能像类一样为traits的伴随对象生成静态转发器。我得到“import Scala.concurrent.Promise$无法解析”(java 7和Scala 2.11)。有什么我遗漏的吗?我不确定。它对我有效,版本相同。解决了问题。出于某种原因,我必须先从命令行运行mvn compile,然后eclipse才能识别导入。我想这是因为Promise$class文件需要生成以在java中使用(只是猜测)?你知道为什么我需要运行mvncile来解析导入,而不是简单的eclipse构建(使用m2e和m2escala插件运行)?谢谢