2

これは、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)

これはバグ、機能、または既知の制限ですか?

4

1 に答える 1

4

これは一種のバグ、一種の機能です。アクセス エラー (機能) が発生するはずです。ただし、コンパイラーはおそらくコンテキストについて十分に知っている必要がありますが、それを実行時に残すのではなく (バグ、または少なくとも拡張の候補)、通知する必要があります。

于 2010-09-09T17:27:21.117 に答える