在Java中,您可以在一个文件中定义多个顶级类,前提是其中最多有一个是公共的(参见JLS §7.6).例如,见下文.

  1. 这种技术有没有一个简洁的名字(类似于innernestedanonymous)?

  2. JLS表示,system may强制执行这些二级类不能为referred to by code in other compilation units of the package的限制,例如,它们不能被视为包私有.这真的是Java实现之间的变化吗?

e、 g.公共课.Java :

package com.example.multiple;

public class PublicClass {
    PrivateImpl impl = new PrivateImpl();
}

class PrivateImpl {
    int implementationData;
}

推荐答案

我建议将这种技术命名为"mess"(在一个源文件中包含多个顶级类).说真的,我觉得这不是个好主意——在这种情况下,我会使用嵌套类型.然后,仍然很容易预测它在哪个源文件中.不过,我不认为这种方法有官方术语.

至于这是否会在不同的实现之间发生变化——我非常怀疑,但如果你一开始就避免这样做,你就永远不需要在意:)

Java相关问答推荐

将Nimbus设置为计算机上运行的所有Java应用程序的默认外观

CriteriaQuery with max

在AnyLogic中增加变量计数

Spring Batch 5-不要让它在数据库中自动创建表

JVM会优化这个数学运算吗?

具有多种令牌类型和段的复杂Java 17正则表达式

Bean定义不是从Spring ApplationConext.xml文件加载的

第二次按下按钮后,我需要将按钮恢复到其原始状态,以便它可以再次工作

MimeMessage emlMessage=new MimeMessage(Session,emlInputStream);抛出InvocationTargetException

使用存储在字符串变量中的路径目录打开.pdf文件

为什么Collectors.toList()不能保证易变性

如何在JUNIT测试中覆盖ExecutorService?

如何在字节数组中反转UTF-8编码?

在Eclipse中可以使用外部字体吗?

模拟JUnit未检测到返回字符串的方法的任何声纳覆盖

如何将RESTAssured';S的Http标题转换为<;字符串、字符串和>的映射?

org.springframework.web.HttpRequestMethodNotSupportedException:请求方法';帖子';不支持

ReturnedRect在升级后反转

Java方法参数:括号中的类型声明?

Java 21保护模式的穷尽性