问题标签 [local-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
75 浏览

java - 所有本地类和所有匿名类也是内部类吗?

这个问题主要是关于正确的 Java 术语。

我正在区分与封闭范围实例相关的内部类和独立于封闭范围实例的非内部嵌套静态类。

这是正确的术语吗?如下所示,所有本地类和所有匿名类也是内部类吗?

0 投票
0 回答
15 浏览

java - JLS 中静态上下文中的局部类声明和实例化规则

考虑 JLS 关于确定封闭实例§:15.9.2 的以下规则:

如果 C 是本地类,则:

– 如果 C 出现在静态上下文中,则 i 没有立即封闭的实例。

否则,如果类实例创建表达式出现在静态上下文中,则会发生编译时错误。

– 否则,令 O 为 C 的直接封闭类。令 n 为整数,使得 O 是出现类实例创建表达式的类的第 n 个词法封闭类型声明。i 的直接封闭实例是 this 的第 n 个词法封闭实例。

现在关于点:2(粗体)不确定这真正意味着什么:在静态上下文中发生的本地类实例化 - 可能会产生编译错误。

在静态方法中也允许类(本地类)的声明和实例化 - 不确定该规则涵盖哪些极端情况。