访问另一个java类中的私有方法字段
有人能告诉我如何访问A类中的B类私有方法字段并在A类中打印它们吗。 谢谢你 我们不应该试图直接访问另一个类中某个类的私有成员。这将完全违反访问修饰符规则。此外,如果您确实想要访问,您可以使用提供的反射API访问另一个java类中的私有方法字段,java,Java,有人能告诉我如何访问A类中的B类私有方法字段并在A类中打印它们吗。 谢谢你 我们不应该试图直接访问另一个类中某个类的私有成员。这将完全违反访问修饰符规则。此外,如果您确实想要访问,您可以使用提供的反射API 通常,为了获取私有类变量,可以创建公共setter和getter,以便在该类之外访问 根据设计,你不能。修改类,使要调用的方法对A可见 这就是说,您可以使用反射来访问B中的方法、字段等,但您不能简单地使用B.call,这很可能是您想要做的。您可以访问其他类中的私有字段和方法,但关键是您不应该
通常,为了获取私有类变量,可以创建公共setter和getter,以便在该类之外访问 根据设计,你不能。修改类,使要调用的方法对A可见 这就是说,您可以使用反射来访问B中的方法、字段等,但您不能简单地使用B.call,这很可能是您想要做的。您可以访问其他类中的私有字段和方法,但关键是您不应该这样做。他们是私人的 因此,正确的做法是将它们公开给其他类。对于字段而不是方法,您可以使用访问器方法来实现这一点 但是,如果您确实必须访问私有字段或方法,则可以通过
但同样,你不应该没有一个很好的理由。改为修复设计。没有像方法字段这样的概念。要么是指方法的局部变量,要么是指实例或类的字段。
public class A
{
public static void main(String args[])
{
}
}
class B
{
private static void call
{
int x=9;
String name ="hello";
}
}
// Calling the static `call` method of `B` even though it's private:
Method m = B.class.getMethod("call");
m.setAccessible(true);
m.invoke(null);