Accéder champ de l'extérieur de la classe

Comment puis-je accéder à un champ de l'extérieur de la classe, compte tenu d'une référence à un objet de l'intérieur de la classe?

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;
        }
    }
}

J'ai aussi essayé Outer.parameter.field et beaucoup d'autres variantes. Est-il une syntaxe qui fait ce que je veux?

n'est-ce pas le but d'un intérieur de classe à été utilisé juste à l'intérieur de l'extérieur de la classe?
Je pense que c'est la façon de le faire. Si vous sentez que c'est faux peut-être que vous pouvez penser refactoring ou de la construction de ces classes différemment?
Je ne connais pas d'autre façon de le faire, mais je dirais que si vous êtes d'avoir à faire des contorsions comme ça, cela signifie généralement que vous devez repenser la conception.
Beaucoup de l'intérieur des instances de classe sont passés dans le monde. De nombreux Itérateur classes, par exemple, sont les classes internes de leur objet iterable collections. Les classes internes aider à réduire l'encombrement de l'espace de noms (par exemple, Float, Arc2D.Float, CubicCurve2D.Float, DataBuffer.Float, etc.)

OriginalL'auteur fredoverflow | 2011-06-30