Java 匿名类是内部类的子集吗?

Java 匿名类是内部类的子集吗?,java,inner-classes,anonymous-class,Java,Inner Classes,Anonymous Class,这听起来可能是个愚蠢的问题,但所有匿名类都必须在现有类中定义和实例化;因此,它们必须同时是内部类。这是非常正确的。您的anonymus类不能作为一个单独的类在其他类之外实现,因为它是anonymus,您甚至不能以任何方式引用它 其他信息: 来自JLS:匿名类始终是内部类(§8.1.3);它从来不是静态的(§8.1.1,§8.5.1)。匿名类是内部类的类型。看 从那里引述: “您还可以在方法体中声明一个内部类,而无需命名该类。这些类称为匿名类。”您指的是什么语言?javaOK中的匿名类,近两周:。

这听起来可能是个愚蠢的问题,但所有匿名类都必须在现有类中定义和实例化;因此,它们必须同时是内部类。

这是非常正确的。您的anonymus类不能作为一个单独的类在其他类之外实现,因为它是anonymus,您甚至不能以任何方式引用它

其他信息:
来自JLS:匿名类始终是内部类(§8.1.3);它从来不是静态的(§8.1.1,§8.5.1)。

匿名类是内部类的类型。看

从那里引述:


“您还可以在方法体中声明一个内部类,而无需命名该类。这些类称为匿名类。”

您指的是什么语言?javaOK中的匿名类,近两周:。我想在同一时间也有另一个,措辞有点不同。还需要注意的是,我们需要区分“内部类”的概念和规范可能定义为
internal
nested
或任何东西。战争之所以发生,是因为一方假定了一种含义,另一方假定了另一种含义。查看一些Java文档摘要,是的:匿名类始终是一个内部类(§8.1.3)@maythesource.com-我认为从他的其他问题来看,答案相当清楚……这并没有回答问题,除非您错误地假设所有嵌套类都是内部类。这不是一回事。也没有引用。问题是:匿名类总是内部类吗,文档摘要直接说:“匿名类总是内部类”,我的回答有什么不对?匿名类总是不只是嵌套类,而是内部类,因为根据Java语言规范,它们不能是静态的。因此,我相信我的答案确实回答了这个问题,我的例子给出了一些直觉,说明了为什么它们必须在其他类中定义(我没有写它们总是静态的,但我相信这不会改变直觉)。我的逻辑不正确吗?你的回答没有提到这些内容,也没有引用JLS的相关部分。它只是说匿名类是一个嵌套类,我们已经知道了,并且像我上面所说的那样,它似乎将内部类和嵌套类混为一谈。您的回答是“true”,这是正确的,但您给出的解释也适用于静态类,它们不是内部类,因此它是不正确的。正确的解释是JLS中所述的内容。