如何訪問外部類的字段,給定對內部類的對象的引用?外部類的訪問字段
class Outer
{
int field;
class Inner
{
void method(Inner parameter)
{
// working on the current instance is easy :)
field = 0;
Outer.this.field = 1;
// working on another instance is hard :(
parameter.field = 2; // does not compile
parameter.Outer.this.field = 3; // does not compile
parameter.outer().field = 4; // This works...
}
// ...but I really don't want to have to write this method!
Outer outer()
{
return Outer.this;
}
}
}
我也試過Outer.parameter.field
和許多其他變種。有沒有一種語法可以做我想要的?
不是一個內部類被用來只是其外部類中的目的是什麼? – Heisenbug
我認爲這是做到這一點的方法。如果你覺得這是錯誤的,也許你可以考慮重構或以不同的方式構建這些類。 – Luciano
我不知道有任何其他的方式來做到這一點,但我會說,如果你必須這樣做扭曲,通常意味着你應該重新考慮設計。 –