【发布时间】:2013-09-09 14:02:25
【问题描述】:
我有一个 A 类,有一个私有成员 int myMember。还有一个 B 类,其中有一个 A 类的私有成员,称为 myA;
即:
public class A{
private int myMember;
...
}
public class B{
private A myA;
}
我希望能够访问:
B.myA.myMember;
但似乎我不能,因为 myMember 在 A 中是私有的。问题是,出于练习的目的,我需要将 A 定义为私有(这也包括它不能受到保护)。有没有办法解决这个问题?
谢谢。
【问题讨论】:
-
(1) 为什么要直接访问字段? (2)
A是否为私有无关;重要的是myMember是私有的。你能改变它吗? -
使用吸气剂。使用反射。
-
如果你的老师已经给出了这个练习,那么他可能希望你使用反射。否则很简单, Private 是 private ,你不能从外部访问它。
-
要么使用 getter 和 setter,或者在现实世界中可能是更好的解决方案,将需要 myMember 值的代码放入 A 类的方法中。
标签: java