gpt4 book ai didi

java - 私有(private)嵌套类的可访问性

转载 作者:行者123 更新时间:2023-12-02 14:05:14 24 4
gpt4 key购买 nike

我有一个类似的类(class)

@SomeAnnotation(Outer.Inner.class)
enum Outer {
A, B, C;
private static class Inner {...}
}

在 Eclipse 中工作正常,但 javac 提示私有(private)访问。哪个编译器是正确的?

据我所知,只要访问发生在同一个源文件中,所有访问限制都会被忽略。

最佳答案

类声明中的可访问性与类内部的可访问性不同 - 声明中的任何符号都不能引用私有(private)成员。这是因为声明给出的信息本质上必须至少可供包的其余部分使用。

例如,考虑一个包私有(private)类Outer:

class Outer<T extends Outer.Inner> {

private static class Inner { }
}

上述内容无效,因为包的其他成员无法访问 Inner,即使他们必须能够访问 Outer 并通过其知道它是什么声明。类似的逻辑可以应用于您的情况。

我不确定为什么 Eclipse 允许这样做,但我想说 javac 是正确的,并且 NetBeans 似乎也同意。

关于java - 私有(private)嵌套类的可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7464853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com