I think you misunderstood the construct you described:
Object o = new Outer().new Inner();
actually is a way to fully qualify a class constructor Inner, as in
Outer.Inner i = new Outer().new Inner();
Alternatively, you can write this:
import path.to.Outer;
import path.to.Outer.Inner;
Inner i = new Outer().new Inner();