在一个类中如何调用另一个类的私有方法

来源:百度知道 编辑: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规定死的.公有方法可以调用..