public class A
{
public static void main(String args[])
{
}
}
class B
{
private static void call
{
int x=9;
String name ="hello";
}
}
谁能告诉我如何访问B类的私有方法场A类,并打印出来在A级 感谢ü..访问私有方法字段
public class A
{
public static void main(String args[])
{
}
}
class B
{
private static void call
{
int x=9;
String name ="hello";
}
}
谁能告诉我如何访问B类的私有方法场A类,并打印出来在A级 感谢ü..访问私有方法字段
我们不应该尝试直接访问另一个类中的类的private
成员。这将完全违反访问修饰符的规则。而且,如果您真的想访问,则可以使用提供的Reflection
API。
一般情况下,为了获得private
类变量,你可以以访问则该类之外创建public
getter和setter方法。
按设计你不能。修改该类,以便您要调用的方法对A可见。
也就是说,您可以使用反射来访问B中的方法,字段等,但不能轻易使用“B.call()”这很可能是你想要做的。
你可以访问其他类中的私有字段和方法,但整个问题是你不应该这样做。他们是私人。
所以正确的做法是通过将它们公开给其他类。在字段(而不是方法)的情况下,您可以使用访问器方法来执行此操作。
但是,如果您确实需要访问私有字段或方法,您可以通过java.lang.reflect
来完成。
// Calling the static `call` method of `B` even though it's private:
Method m = B.class.getMethod("call");
m.setAccessible(true);
m.invoke(null);
但是,如果没有真正的理由,你不应该这样做。改正设计。
将其公开。 – Jite
没有像“方法领域”这样的概念。你既可以是一个方法的局部变量,也可以是一个实例或类的字段。 – Seelenvirtuose