无法访问内部类的公共变量...它是从父级继承的

时间:2011-04-12 15:07:49

标签: java scope

Java问:我无法在父类的内部类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 个答案:

答案 0 :(得分:4)

p.Button是一个类名 与任何其他类名一样,它只能用于访问静态成员。

您需要获取Button类的实例。 (例如,p.new Button().foo

答案 1 :(得分:2)

首先,您的内部类称为Button(单数),而不是Buttons(复数)。其次,使内部类静态并使foo成员保持不变,您将能够以foo方式访问Button.foo成员,您将无法更改其值