嘿伙计我是一个全新的java新手,说实话,我不确定如何向你解释我的问题。
所以我有两个类,其中一个是另一个继承的。
现在我不允许更改超类,否则这会更容易。
问题是在我的子类中我想访问一个变量(让我们称之为变量1)
此变量的定义如下所示超类:
static final String variable1 = (String)AccessController.doPrivileged(new PrivilegedAction()
{
public Object run() {
return System.getProperty("variable1", "\n");
}
}
);
现在在我的子类中,我尝试以下方法:
this.finalOutputFormat = (replaceKeys(this.format) + variable1);
但它不起作用,因为eclipse一直告诉我变量1 “不可见”。
这几乎是我唯一的错误。
你知道为什么变量1对我的子类不可见吗?显然,超类作为库导入,但在不同的包中导入。
我希望我对情况的描述不会太混乱,但现在我没有比这更多的信息。
感谢。
答案 0 :(得分:4)
variable1
上没有可见性关键字(公开,私有,受保护)。因此,只能从同一包中的类访问它。
如果不允许修改超类,则唯一的选择是将您的类放在与超类相同的包中。
答案 1 :(得分:0)
如果你想像这样使用它,可以在variable1之前放置一个public修饰符,或者将子类移动到与超类相同的包中