public class A
{
public static void main(String args[])
{
}
}
class B
{
private static void call
{
int x=9;
String name ="hello";
}
}
任何人都可以告诉我如何访问A类中的B类私有方法字段并在A类中打印它们。 谢谢你..
答案 0 :(得分:2)
你可以访问其他类中的私有字段和方法,但重点是你不应该这样做。他们是私人。
因此,正确的做法是通过将其公开来使其可用于其他类。对于 fields (而不是方法),您可以使用访问器方法执行此操作。
但是,如果您真的必须访问私人字段或方法,可以通过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);
但是,如果没有充分理由,你不应该这样做。改为修改设计。
答案 1 :(得分:0)
我们不应该尝试直接访问另一个班级中的private
成员。这将完全违反访问修饰符的规则。此外,如果您真的想要访问,可以使用提供的Reflection
API。
通常,为了获得private
类变量,您可以创建public
setter和getters ,以便在该类之外访问。
答案 2 :(得分:0)
按设计你不能。修改课程,以便A调用您想要调用的方法。
也就是说,您可以使用反射来访问B内的方法,字段等,但是您不能轻易地使用" B.call()"最有可能是你想做的事。