从单独的类文件访问公共静态类的状态

我在另一个公共类中有一个公共静态类,如下所示:

public class Foo { public static class Bar{ A firstBar; Bar(A setBar){ this.firstBar=setBar; } } public final Bar instanceBar; public Foo(A actualValue) { instanceBar = new Bar(actualValue); } public Bar getBar() { return instanceBar; } 

我的目标是从没有get方法的单独的类文件中访问instanceBar的状态,而不改变firstBar的可见性。 我该如何做到这一点?

例如,以下说不not visible

 public class RetrieveFirstBar { public static void main(String[] args) { Foo z = new Foo(5l); Foo.Bar z2 = z.getBar(); long k = z2.firstBar; //not visible! } 

}

我想你的意思是

 class Foo 

既然你写了“A firstBar”, 你给变量的包访问权限: http : //docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

如果在同一个包中有RetrieveFirstBar,则不会出现可见性问题。 但是,如果你想从任何地方访问它,你应该写

 public A firstBar;