使用Java的默认包是不好的做法?

H2O*_*aCl 49 java packages

使用Java的默认包是不好的做法?

Mat*_*all 56

是的.理想情况下,程序包名称应该是全局唯一的,以避免命名冲突.使用默认包会破坏此约定.从默认包中导入类也是不可能的.

为什么存在未命名的包,如果这是一个坏主意?来自JLS§7.4.2:

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

  • ...是的,但他们担心像我这样的人,所以他们都决定不使用它. (3认同)
  • _"没有人使用默认包"_` [citation-needed]` (2认同)
  • 为什么为了方便起见,提供一些本质上不好的做法是一个好主意?为什么标准/规范不仅仅要求所有类都具有包名称作为最低语法的一部分,所以没有开头的未命名包?IDE可以在内部配置为具有一个名为“项目”,“项目名称-团队名称”或其他预设字符串/模板的“默认”命名软件包。如果您懒惰,学习或根本不需要多个软件包,则IDE可以封装强制性的软件包命名。 (2认同)

Sea*_*oyd 20

许多不同层面都存在问题:

  • 您不能从非默认包中导入默认包中的类
  • 如果您尝试解决多个工件中的默认包,则会出现类加载问题
  • 您不能像平常那样使用默认和受保护的范围
  • 您的代码和其他代码之间没有明显的区别