如何在Java中的私有方法中从另一个类访问对象?
从另一个类调用私有方法的简单示例。
档案:A.java
public class A {
private void message(){System.out.println("hello java"); }
}
文件:MethodCall.java
import java.lang.reflect.Method;
public class MethodCall{
public static void main(String[] args)throws Exception{
Class c = Class.forName("A");
Object o= c.newInstance();
Method m =c.getDeclaredMethod("message", null);
m.setAccessible(true);
m.invoke(o, null);
}
}
答案 0 :(得分:2)
由于 private 仅在声明的类中使用,因此无法从其他类调用。如果您想使用它,则应在修改为受保护或公开后使用它。
答案 1 :(得分:0)
通常私有方法只能从同一个类中访问。无法从外部类访问私有方法。但是,有一种方法可以从外部类访问私有方法。
import java.lang.reflect.Method;
public class PriavteMethodAccessTest{
public static void main(String[] args)throws Exception{
A test = new A();
Class<?> clazz = test.getClass();
Method method = clazz.getDeclaredMethod("message");
method.setAccessible(true);
System.out.println(method.invoke(test));
}
}