在一个类中如何调用另一个类的私有方法
来源:百度知道 编辑:UC知道 时间:2024/05/24 10:21:29
要求:不能继承
强调:类不是私有的。但是要调用那个类里面的一个私有的方法
【代码如下】
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class Wangyf {
public static void main(String[] args) {
Class<AAA> cl = AAA.class;
try {
//调用私有构造方法,创建对象。
Constructor<AAA> c = cl.getDeclaredConstructor();
c.setAccessible(true);
AAA a = c.newInstance();
//调用私有方法
Method m = cl.getDeclaredMethod("print", int.class);
m.setAccessible(true);
m.invoke(a, 15);
} catch (Exception e) {
e.printStackTrace();
}
}
}
final class AAA{
private AAA(){
System.out.println("new AAA(); OK!");
}
private void print(int n){
System.out.println(n + " is from AAA!");
}
}
【多看 API 就什么都明白了】 【给分太少了】
用private修饰的方法,那是私有的..不管你外部哪里如何调用都不行的.这个都是jdk规定死的.公有方法可以调用..