这类似于以下问题: Is there a way to access the variables of the calling class in a method? 但我无法得到确切的答案。 我想做什么:
class A{
m()
{
int a=8;
new B.m1();
}
}
class B{
m1()
{
//Print the value of a of class A (i.e 8) here
}
}
约束: 应该更改A类中的任何内容。只能在B类中进行更改! (例如将B.m1(this)放入A类等)
答案 0 :(得分:3)
不,这是不可能的。 特别是,因为a
是一个局部变量。
如果a
是一个字段,那么可能是使用某些反射/堆栈跟踪黑客解决此问题的远程可能性。
答案 1 :(得分:0)
了解这个'关键词。但是在这里它是不可能的,因为你在谈论一个局部变量,其范围只是方法m()
答案 2 :(得分:0)
考虑到' a'的范围,将其作为参数传递是访问它的唯一方法。