Вопрос

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

}

Это было полезно?

Решение

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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top