は、我々は次のことを持って考えてみましょう:私はリフレクションを使用してオーバーライドされたメソッドを呼び出す方法は?
java.lang.IllegalAccessException: no private access for invokespecial: class Successor, from TestApp$
:私は(How to call a superclass method using Java reflectionから取った)次の操作を実行しようとしてい
class Base { def name = "Base" }
class Successor extends Base {
override def name = "Successor"
}
:
import java.lang.invoke.{MethodHandles, MethodHandle, MethodType}
object TestApp {
def main(args: Array[String]) {
val a = new Successor;
val h1 = MethodHandles.lookup().findSpecial(classOf[Base],
"name",
MethodType.methodType(classOf[String]),
classOf[Successor]);
println(h1.invoke(a));
}
}
が、私は、実行時例外を取得JavaのリフレクションがScalaで正しく機能しない可能性があると言われました。本当ですか?または私は単に何か間違っている?