以下Scala示例定义了包对象中的类:
package com.mycompany
package object test {
class MyTest {
def foo(): Int = {
42
}
}
}
Run Code Online (Sandbox Code Playgroud)
生成以下三个类:
com/mycompany/test/package.class
com/mycompany/test/package$.class
com/mycompany/test/package$MyTest.class
Run Code Online (Sandbox Code Playgroud)
尝试使用MyTestJava中的类时出现问题.我认为,由于package$MyTest名称中包含$,因此Java不承认它的存在.然而,package$课程是可访问的.
javap在package$MyTest.class退货时运行:
Compiled from "Test.scala"
public class com.mycompany.test.package$MyTest {
public int foo();
public com.mycompany.test.package$MyTest();
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用Eclipse,Intellij和Netbeans访问该类,但没有成功.是否可以使用Java中的包对象中定义的Scala类?