我做了一个例子来访问内部类的私有方法,我每次都没有发现类异常。私人内部类访问方法
class Test {
public static void main(String[] args) throws Exception {
Class<?> clazz = Class.forName("Inner.Private");
Method m = clazz.getDeclaredMethod("foo");
m.setAccessible(true);
m.invoke(new Inner());
}
}
class Inner {
private class Private {
private void foo() {
System.out.println("foo called");
}
}
}// end of Inner
我得到如下异常:在线程
异常 “主要” 抛出java.lang.ClassNotFoundException: 在java.net.URLClassLoader的$ 1.run(来源不明)Inner.Private
任何帮助将非常感激。让我知道为什么它忽略了一个内部类或任何见解。
Make Test a public class。 – theVoid
它是'Inner $ Private'。 – Savior
除了@Pillar之外,'m.invoke(new Inner());'将不起作用,因为你正在给Inner.Private的一个方法提供Inner实例。 – Tunaki