views:

42

answers:

2

is it possible to access a shadowed field of an enclosing class from the enclosed one in Java?

public class Inherit {    

    public int a = 3;
    private int b = 5;
    public class Inheriting {
        public int a = 23;
        private int d = 8;
        public void f() {
            System.out.println("Here I want to get a = 3");
            ...
        }
    }
}
+1  A: 

Yes,

Inherit.this.a;

But you'd better choose more descriptive names so that they don't clash.

Bozho
+2  A: 
public void f() {
    System.out.println("Here I want to get a = 3" + Inherit.this.a); 
}
Roman