0

嘿伙计们,我是一个完全的 java 新手,老实说,我不确定如何向你解释我的问题。

所以我有2个类,其中一个被另一个继承。

现在我不允许更改超类,否则这会容易得多。

问题是在我的子类中我想访问一个变量(我们称之为变量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 一直告诉我 variable1 "is not visible"

这几乎是我遇到的唯一错误。

你知道为什么我的子类看不到 variable1 吗?很明显,超类是作为库导入的,但在不同的包中。

我希望我对情况的描述不会太混乱,但现在我没有比这更多的信息了。

谢谢。

4

2 回答 2

4

上没有可见性关键字(公共、私有、受保护)variable1。因此,它只能从同一包中的类访问。

如果不允许你修改你的超类,你唯一的选择就是把你的类和超类放在同一个包中。

于 2013-08-05T13:55:30.820 回答
0

如果你想这样使用它,在 variable1 之前放置一个 public 修饰符或将子类移动到与超类相同的包中

于 2013-08-05T14:50:54.513 回答