当我创建一个只有一个或两个java / class文件且不与其他程序共享的独立Java程序时,我从不花时间在程序包名称中说org.domain.scripts.purpose
。我通常只是制作我的主要课程main.Main
。
也许这是违反协议的,但是当复制程序以填补另一个小的利基要求(比如将分隔符转换为csv或递归列出按修改日期排序的文件)时,我将不会重命名包名称或当我已经知道我在做什么节目时,要经历漫长的包名和路径。
当没有唯一的包名时,小的泛型类(如Base64转换)更容易从一个程序复制到另一个程序。
那么,什么是标准通用包名称(或者有一个)
编辑:我想我会继续提及更多原因。当文件具有相同的包名时,更容易区分文件或查看它们是否相同。此外,当我需要包含库时,我会创建一个包含java -cp library:jarfile
而不是java -jar
的使用说明,并且cp选项要求我设置主类名称,因此我希望将其缩短太。此外,堆栈跟踪看起来更好。
答案 0 :(得分:5)
没有标准的通用包名称。但是,有一个命名约定来命名包:
答案 1 :(得分:1)
“foo”是我经常看到用于此目的的。
答案 2 :(得分:1)
对于您列出的较长软件包名称的一些问题,即使从一个项目复制到另一个项目,大多数IDE也会为您处理所有这些问题。
答案 3 :(得分:0)
只要您不使用另一个类似的懒惰开发人员编写的代码,这可能没问题:-)猜猜如果编译器在默认包中找到两个名为Base64
的类,会发生什么......
使用正确的包名称是为了避免名称冲突。大多数现代IDE都可以轻松地将类迁移到不同的包中,因此我不认为这是一个问题。但是,一旦出现名称冲突,如果您需要返回并在100个旧项目中迁移该类,则会出现问题。或者当你不这样做时它会成为一个问题,然后你需要在类的所有不同版本中修复一个错误......
因此,如果您为自己编写代码,最简单的选择是将其放入package net.georgebailey
。然后,常规实用程序可以进入net.georgebailey.util
。
答案 4 :(得分:0)
我认为最接近“标准通用”软件包名称的是默认软件包(如果你愿意,可以是no-package)。当然这是不好的做法,但我知道我们谈论的是微小的实验,而不是生产代码。
但是,默认包的一个主要缺点(除了仅缺少命名空间)是您无法从命名包中导入默认包中的类。
因此,对于您的实验,如果您只想要单段包名称,请选择适合您的任何内容:test
,pkg
,main
(如您所述)或其他任何内容。 ..