Access public static class' state from a separate class file

人走茶凉 提交于 2019-12-31 04:42:09

问题


I have a public static class within another public class as follows:

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;
}

My objective is to access instanceBar's state from a separate class file without a get method and without changing the visibility of firstBar. How do I accomplish this?

For example, the following says 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!
        }

}


回答1:


I guess you mean

class Foo<A>

Since you write "A firstBar;" you give package access to the variable: http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

If you have the RetrieveFirstBar in the same package you will not have visibility problems. But, if you want to access it from everywhere you should write

public A firstBar;


来源:https://stackoverflow.com/questions/19361160/access-public-static-class-state-from-a-separate-class-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!