java 一个类调用另一个类的private方法

就是一个类A中的方法A,想要调用类B中的方法B,方法B是private的
这个能调用么?

Java调用private方法利用的是Java中的类反射机制 。
定义一个class,定义一个内部private方法:
public class PrivateTest {
private void print() {
System.out.println("this is a private method");
}
}
再定义一个class去访问刚才定义的private方法,也就是print()如下
import java.lang.reflect.Method;

public class PrivateTest2 {
public static void main(String[] args) {
try {
Method method = PrivateTest.class.getDeclaredMethod("print", new Class[]{});
method.setAccessible(true);
Method.invoke(new PrivateTest(), new Object[] {});
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
利用java的反射机制,即使是private方法,也可以被调用使用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-01
private方法无法被外部类调用。
解释:
private:代表私有的,修饰变量只能在本类访问,private方法子类不能继承。除此之外,常用的为public:是最大访问权限,可以被项目中的任意类进行方法调用。
第2个回答  2013-01-22
私有的只有自己能用,或者你通过反射去调用(这个没有必要);其实就可以通过在你B类中写一个public的方法,在这个方法中去调用B中的private方法。
我想你是想用单例么?如果是,你去查看一下单例的写法……来自:求助得到的回答
第2个回答  2013-01-22
不能直接调用,你可以在B中的一个公共的方法把值传递给private的方法,在通过B中该方法将值返回。
第3个回答  推荐于2017-09-01
你可以在B类里增加一个public方法,再在新增方法里调用private方法。在A类对象中调用B类的新增public方法不就可以实现了么?追问

我把方法B改成public了,可是又提醒我要把方法B改成static

追答

你不要修改原有的方法B ,新增一个放在,再调用方法B 试试

本回答被提问者采纳
相似回答