当前位置: 首页 > 知识库问答 >
问题:

类的词法内含类型

罗伟兆
2023-03-14

JLS 8.1.3就是这样定义词汇封闭类型概念的:

类或接口O是其自身的第0个词汇封闭类型声明。

类O是类C的第n个词汇封闭类型声明,如果它是C的第n-1个词汇封闭类型声明的直接封闭类型声明。

因此,从这个定义中不清楚是否考虑了任何内部类,或者仅仅是类或接口O的内部类。这些是不同的概念,因为最后一个定义如下:

如果O是C的直接封闭类型声明,并且C的声明不在静态上下文中出现,则内部类C是类或接口O的直接内部类。

类C是类或接口O的内部类,如果它是O的直接内部类或O的内部类的内部类。

为了更清楚,让我举一个例子:

class A{
    class Bar{ } //inner class of class A

    public static void main(String[] args){
        class Foo{ } //inner class, but not an inner class of class A
    }
}

演示

立即封闭类型的定义被认为是类或接口的任何内部类或内部类?


共有1个答案

利海阳
2023-03-14

BarFoo都有A作为直接封闭的类型声明。他们是平等的。Foo也包含在方法声明中这一事实并不影响这一点。

 类似资料:
  • 问题内容: 这就是我现在正在做的。有没有更好的方法来访问超类? 我正在使用Google Web Toolkit进行编程,但是我认为这确实是一个通用的Java问题。 问题答案: 您可以使用所谓的qualified 。 [JLS 15.8.4。合格的](http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.8

  • 问题内容: 在此问题中用户@Holger提供了一个答案,该答案显示了匿名类的不常见用法,我并不知道。 该答案使用流,但是此问题与流无关,因为这种匿名类型构造可以在其他上下文中使用,即: 令我惊讶的是,它编译并打印了预期的输出。 注意:我很清楚,自古以来,就可以构造一个匿名内部类并按如下方式使用其成员: 但是,这不是我要问的。我的情况有所不同,因为匿名类型是通过方法链传播的。 现在,我可以想象到此功

  • 我对Java有很好的理解,但我正在努力学习c来制作游戏,因为我认为c是一种更好的语言。但是我对c有一些问题。 是一个带有字符串构造函数的类,只是在这个类中声明它会导致错误。如果我删除的构造函数,我不会得到错误。 错误:render.cpp:3:16:错误:没有匹配的函数调用着色器::着色器()

  • 问题内容: 最近,我试图用Python存储和读取文件中的信息,但遇到一个小问题:我想从文本文件中读取类型信息。从字符串到int或float的类型转换非常有效,但是从字符串到类型的类型转换似乎是另一个问题。自然,我尝试过这样的事情: 但是,它并不用作强制类型转换,而是用作查找变量类型的机制,实际上它在这里。 我找到了一种解决方法: 但我一般尽量避免类似的功能/报表或在那里我可以。所以我的问题是:是否

  • 我正在编写一个实现一些程序分析的Java程序。作为这一点的一部分,我想要一种类型来表示我正在分析的程序中的“值”。在我看来,值只是整数。然而,我宁愿不在代码中使用/类型,因为/不是一个非常描述性的名称。我宁愿写。然后我想写 然后完成。但这不起作用,因为<code>Integer</code>是最终类。因此,我当前的解决方案是给类一个字段,然后手动实现所有各种标准方法: 当我真的只是在寻找行为类似于

  • 在“word2vec的实现”一节中,我们在小规模数据集上训练了一个word2vec词嵌入模型,并通过词向量的余弦相似度搜索近义词。实际中,在大规模语料上预训练的词向量常常可以应用到下游自然语言处理任务中。本节将演示如何用这些预训练的词向量来求近义词和类比词。我们还将在后面两节中继续应用预训练的词向量。 使用预训练的词向量 MXNet的contrib.text包提供了跟自然语言处理相关的函数和类(更