【发布时间】:2016-07-12 06:19:34
【问题描述】:
我不允许更改 A 类,但我需要获取 'a' 的值(在构造函数中设置)。谁能告诉我该怎么做?其他所有解决方案似乎都建议在 A 类中使用吸气剂。我不允许以任何方式对 A 类进行更改,也不能更改为公共等。魔法必须在 B 类中发生。
public class A{
private int a;
public A(int x){
a = x * 10;
}
}
public class B{
public B(int x){
A instA = new A(x);
}
public int geta(){
???
}
}
PS:发布了这个问题,因为每个类似的问题都通过更改 A 类来回答,而我不允许这样做。但既然似乎只有反思,这个问题就可以结束了。谢谢大家。
【问题讨论】:
-
如果成员变量是私有的,那么在外部访问它的唯一方法是通过某种方法...
-
你不能给A添加getter,但是你可以以任何方式修改A吗?如果是,您可能会将
private int a;更改为public int a;。另外,请说明为什么不允许添加 getter。 -
由于stackoverflow.com/q/1196192/217324 已经涵盖了这方面的选项(反射、字节码黑客、不关心访问修饰符的替代 jvm 语言),因此投票结束。
标签: java getter private-members