这在Scala 2.8.0 final上编译时没有错误:
import javax.swing.tree.TreePath
object A extends Application {
val path1 = new TreePath()
val path2 = new TreePath(path1, "foo")
}
然而,在执行时我得到:
java.lang.IllegalAccessError: tried to access method javax.swing.tree.TreePath.<init>()V from class A$
at A$.<init>(A.scala:5)
at A$.<clinit>(A.scala)
at A.main(A.scala)
这是错误,功能还是已知限制?
答案 0 :(得分:4)
这是一种错误,类似功能。你当然应该得到访问错误(功能),因为这是受保护的应该做的。然而,编译器应该足够了解上下文,以便能够分辨并警告您,而不是将其留给运行时(bug,或者至少是候选者,用于增强)。