当前位置: 首页 > 面试题库 >

与外部类同名的内部类?

苏边浩
2023-03-14
问题内容

限制条件:

我有一个编写的Maven源代码生成器,它是从具有嵌套名称空间的某些数据文件创建POJO类的。我希望每个名称空间都嵌套为一个内部类。在某些情况下,我最终会得到内部类,这些内部类与最外部类的简单名称相同。

所有类都必须是public作用域,因为这是对类型安全包装器的覆盖,例如属性文件,但是是分层的。

我不能更改名称,否则我将更改名称含义和包含数据的名称空间。

给出比我有以下代码:

public class A
{
    public class B
    {
        public class A
        {

        }
    }
}

内部类应附加外部类的名称以形成唯一的名称空间,例如A$B$A.class,我还没有找到不进行编译的正当理由。

有什么技巧可以使它编译吗?


问题答案:

编号从上类声明的JLS部分:

如果一个类与其任何封闭的类或接口具有相同的简单名称,则是编译时错误。

注意:在某种程度上,我通过寻找明确的规则设法错过了这一点。 如果您想要我到达这里的曲折方式,请查看编辑历史记录。



 类似资料:
  • 这个问题是针对Java的 下面是一个例子:

  • 问题内容: 我有一个班和一个子班 好的,在05行中,id喜欢访问A类的方法测试。但是我陷入了循环,因为我不知道如何指定使用A类的方法。 有任何想法吗? 问题答案: 编辑:正如@Thilo提到的:避免在外部类和内部类中使用相同的方法名称,这将避免命名冲突。

  • 问题内容: 在进行一些基本的lambda练习时,一个看似完全相同的匿名内部类的输出给我的输出与lambda不同。 场景1 输出 2 和 2 。这里没有新内容。 但是当我这样做时: 场景2 输出 2 和 3 问题:两个输出不应该相同吗? 我想念什么吗? 为了完整起见: 方案3 输出 3 和 3 。这里也没有什么新鲜的。 更新:仍从1.8.0-b132获得相同的输出 更新#2:错误报告: https

  • 在以下片段中: 有没有办法从内部匿名类引用匿名类的外部实例? 第二个错误是在解决方案上,我在这里找到了一个匿名内部类的外部类的关键字。这些问题似乎共享一些概念和问题空间,但性质不同。

  • 问题内容: 在以下代码段中: 是否有关键字从内部类引用外部类?基本上我想做的是或类似的东西,但是似乎什么也找不到。 问题答案: 通常,你用于引用外部类的封闭实例。 在你的例子中