我在另一个公共类中有一个公共静态类,如下所示:
public class Foo<A> {
public static class Bar<A>{
A firstBar;
Bar(A setBar){
this.firstBar=setBar;
}
}
public final Bar<A> instanceBar;
public Foo(A actualValue) {
instanceBar = new Bar<A>(actualValue);
}
public Bar<A> getBar() {
return instanceBar;
}
我的目标是在没有get方法且不更改instanceBar
的可见性的情况下,从单独的类文件中访问firstBar
的状态。我该如何做到这一点?
例如,以下内容为not visible
。
public class RetrieveFirstBar {
public static void main(String[] args) {
Foo z = new Foo(5l);
Foo.Bar<Long> z2 = z.getBar();
long k = z2.firstBar; //not visible!
}
}
答案 0 :(得分:1)
我猜你的意思是
class Foo<A>
因为你写了“A firstBar”;您提供对变量的包访问权限: http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
如果您在同一个程序包中有RetrieveFirstBar,则不会出现可见性问题。但是,如果你想从任何地方访问它,你应该写
public A firstBar;