如何在java中访问scala类中的scala对象?

如何在java中访问scala类中的scala对象?,java,scala,scala-java-interop,Java,Scala,Scala Java Interop,我有一个scala类,比如: class A { object B { def c(d: Int) = d + 4 } } 如何从java代码访问函数c 编辑:假设我无论如何都不能更改scala类 编辑2: 下面是一个例子 public class Q { public void qwe() { A a = new A(); a.B().c(4); //Cannot resolve method 'B' in 'A' } } 类

我有一个scala类,比如:

class A {
  object B {
    def c(d: Int) = d + 4
  }
}
如何从java代码访问函数c

编辑:假设我无论如何都不能更改scala类

编辑2: 下面是一个例子

public class Q {
    public void qwe() {
        A a = new A();
        a.B().c(4); //Cannot resolve method 'B' in 'A'
    }
}
类中的对象B转换为公共方法B,您可以按如下方式访问该方法:

A=新的A; System.out.printlna.B.c4; 幕后 斯卡拉

甲级{ 对象B{ def cd:Int=d+4 } } 当编译成java时,上面的类如下所示

斯卡拉 javap-pa.class 公共A类{ 私有易失性A$B$B$模块; 公共A$B$B; 私人最终无效B$lzycompute$1; 公共A; } 类中的对象B转换为公共方法B,您可以按如下方式访问该方法:

A=新的A; System.out.printlna.B.c4; 幕后 斯卡拉

甲级{ 对象B{ def cd:Int=d+4 } } 当编译成java时,上面的类如下所示

斯卡拉 javap-pa.class 公共A类{ 私有易失性A$B$B$模块; 公共A$B$B; 私人最终无效B$lzycompute$1; 公共A; }
这在思想上是行不通的。当我试图编译它时,Gradle也会抛出错误。下面是java类``public class Q{public void qwe{A A A=new A;A.B.d4;}}}}``的示例,Idea不理解,可能是intellij的bug。您仍然可以运行,并且应该打印8。这在idea中不起作用。当我试图编译它时,Gradle也会抛出错误。下面是java类``public class Q{public void qwe{A A A=new A;A.B.d4;}}}}``的示例,Idea不理解,可能是intellij的bug。您仍然可以运行,并且应该打印8