访问另一个java类中的私有方法字段

访问另一个java类中的私有方法字段,java,Java,有人能告诉我如何访问A类中的B类私有方法字段并在A类中打印它们吗。 谢谢你 我们不应该试图直接访问另一个类中某个类的私有成员。这将完全违反访问修饰符规则。此外,如果您确实想要访问,您可以使用提供的反射API 通常,为了获取私有类变量,可以创建公共setter和getter,以便在该类之外访问 根据设计,你不能。修改类,使要调用的方法对A可见 这就是说,您可以使用反射来访问B中的方法、字段等,但您不能简单地使用B.call,这很可能是您想要做的。您可以访问其他类中的私有字段和方法,但关键是您不应该

有人能告诉我如何访问A类中的B类私有方法字段并在A类中打印它们吗。 谢谢你

我们不应该试图直接访问另一个类中某个类的私有成员。这将完全违反访问修饰符规则。此外,如果您确实想要访问,您可以使用提供的反射API


通常,为了获取私有类变量,可以创建公共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);