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.
}
答案 0 :(得分:4)
p.Button
是一个类名
与任何其他类名一样,它只能用于访问静态成员。
您需要获取Button
类的实例。 (例如,p.new Button().foo
)
答案 1 :(得分:2)
首先,您的内部类称为Button(单数),而不是Buttons(复数)。其次,使内部类静态并使foo
成员保持不变,您将能够以foo
方式访问Button.foo
成员,您将无法更改其值