我有以下scala示例:
class Nested {}
object Nested {
class Inner {}
object Inner {
def x = 321
}
}
使用JUnit测试来专门测试我可以执行Nested.Inner.x()
并在没有Nested.Inner$.MODULE$.x()
的情况下自由调用该方法:
import static junit.framework.Assert.*;
import org.junit.Test;
public class TestFromJava {
@Test
public void accessTest() {
assertEquals(321, Nested.Inner.x());
}
}
这是编译,但在运行测试的那一刻,我得到了(sbt test
):
[error] TestFromJava.java:8: cannot find symbol
[error] symbol: method x()
[error] location: class Nested.Inner
[error] Nested.Inner.x
如何从Scala语法中获益并且不使用可怕的$?也许它是语言的一个特征,就像它生成object
个实例一样。
答案 0 :(得分:0)