не может получить доступ к публичной переменной внутреннего класса ... которая наследуется от родительского - PullRequest
1 голос
/ 12 апреля 2011

Java Q: Я не могу получить доступ к публичной переменной во внутреннем классе моего родителя, который называется foo. Зачем? установка следующая (псевдо-код для краткости):

public class PageObject  
{  
    public class Button  
    {  
        public String foo ="I want this string."  //can't access....  
    }  
    ....other stuff I can access here...  
}  

public class worker
    {  
    public PageObject p = new PageObject();  
    }  

public class workerchild extends worker  
{  
    p.Buttons.    <---don't have access to Buttons public variables, only .class, etc.  
}  

Ответы [ 2 ]

4 голосов
/ 12 апреля 2011

p.Button является именем класса.
Как и любое другое имя класса, оно может использоваться только для доступа к статическим членам.

Вам необходимо получить экземпляр класса Button. (например, p.new Button().foo)

2 голосов
/ 12 апреля 2011

Во-первых, ваш внутренний класс называется Button (единственное число), а не Buttons (множественное число). Во-вторых, сделайте внутренний класс статическим, а член foo постоянным, и вы сможете получить доступ к члену foo как просто Button.foo, вы просто не сможете изменить его значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...