简体   繁体   English

从Java访问Scala独立单例对象

[英]Accessing Scala standalone singleton object from Java

I am having trouble accessing the method fromString in Scala. 我在Scala中无法访问fromString方法。 I tried javap and at least one of the ways i am accessing should be working, but its not. 我尝试了javap,并且至少我正在访问的一种方式应该有效,但事实并非如此。

App.scala App.scala

object App { 
 def fromString(s:String) : Option[Int] =  if( s == "0" ) Some(0) else None
}

Test.java Test.java

public class Test {
    public static void main(String[] args){
           //THEY ALL GIVE COMPILER ERRORS
           //App.fromString("");
           //App$.fromString("") ;
           //App$.MODULE$.fromString("");

    }
}

JAVAP OUTPUTS JAVAP输出

javap App Compiled from "App.scala" 从“ App.scala”编译的javap App

public final class App extends java.lang.Object{
    public static final scala.Option fromString(java.lang.String);
}

javap App$ Compiled from "App.scala" javap App $从“ App.scala”编译

public final class App$ extends java.lang.Object implements scala.ScalaObject{
    public static final App$ MODULE$;
    public static {};
    public scala.Option fromString(java.lang.String);
}

I just tried it in Eclipse, and the expected 我只是在Eclipse中尝试过,

App.fromString("");

compiles fine. 编译良好。 Eclipse shows an error "App cannot be resolved", but I've learnt to ignore Eclipse's errors. Eclipse显示错误“无法解析应用程序”,但是我已经学会了忽略Eclipse的错误。

Maybe you haven't put your classes in the same package? 也许您没有将您的课程放在同一个程序包中?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM