我在另一个公共(public)类中有一个公共(public)静态类,如下所示:
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;
}
我的目标是从单独的类文件访问 instanceBar
的状态,而不使用 get 方法,并且不更改 firstBar
的可见性。我该如何实现这个目标?
例如,以下内容表示不可见
。
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!
}
}
最佳答案
我猜你的意思是
class Foo<A>
既然你写了“A firstBar;”您授予包对变量的访问权限: http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
如果您在同一个包中拥有 RetrieveFirstBar,则不会出现可见性问题。但是,如果您想从任何地方访问它,您应该编写
public A firstBar;
关于java - 从单独的类文件访问公共(public)静态类的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361160/