如果我不指定,我的类所在的默认包是什么?

新手上路,请多包涵

假设我有一个名为 Main.java 的文件,其中包含以下代码:

 public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

它是否放在一个特定的包中,在(也许?)一个未命名的包中?

原文由 devoured elysium 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 412
2 个回答

不在命名包中的类在 未命名包 中。因此完整的类名是 Main

除非通过反射,否则不能从命名包中 使用 此类类。

JLS 说:

Java SE 平台提供未命名包主要是为了方便开发小型或临时应用程序或刚开始开发时。

原文由 Lachlan Roche 发布,翻译遵循 CC BY-SA 3.0 许可协议

Java 没有命名空间,它有包。是的,没有包声明的类是隐含的“ 未命名包”的一部分,通常也称为“默认包”。但是,由于不可能从未命名的包中导入类,并且由于语言规范明确允许实现对未命名包中的类是否以及如何相互可见有不同的规则,因此将所有类放在命名中通常是个好主意包除了实验代码。

原文由 Michael Borgwardt 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题