【问题标题】:Generic Java Package Name通用 Java 包名称
【发布时间】:2011-02-03 00:35:03
【问题描述】:

当我创建一个独立的 Java 程序时,它只有一个或两个 java/class 文件并且不与其他程序共享,我从不花时间在包名中说org.domain.scripts.purpose。我通常只是让我的主要课程main.Main

也许这违反了协议,但是在复制程序以满足另一个小众需求时(例如将制表符分隔为 csv 或递归列出按修改日期排序的文件),我不会重命名包名称或当我已经知道自己在哪个程序中时,还要忍受冗长的包名和路径。

当它们没有唯一的包名时,小泛型类(如 Base64 转换)更容易从一个程序复制到另一个程序。

那么,什么是标准的通用包名(或者有没有)

编辑:我想我会继续提及更多原因。当它们具有相同的包名称时,比较文件或查看它们是否相同更容易。另外,当我需要包含一个库时,我会做一个使用说明,其中包含 java -cp library:jarfile 而不是 java -jar 并且 cp 选项要求我设置主类名,所以我也喜欢在那里简短。这样堆栈跟踪看起来也更好。

【问题讨论】:

    标签: java naming-conventions packages


    【解决方案1】:

    没有标准的通用包名称。但是,命名包有一些命名约定:

    • 包名写在所有 小写以避免与 类或接口的名称。
    • 公司使用他们的反向互联网 域名开始他们的包裹 名称——例如,com.example.orion 对于由创建的名为 orion 的包 example.com 的程序员。

    参考资料:

    【讨论】:

      【解决方案2】:

      “foo”是我最常看到用于此目的的。

      【讨论】:

      • 这通常用于示例中,而不是用于实际使用的代码中(据我了解 OP 的代码是)。
      • 啊,我认为它只是用于一些简单的个人/内部应用程序。
      • 并不是说它有什么不同:)
      • en.wikipedia.org/wiki/Foobar - 恕我直言,它可以用于私人工具/实用程序/学习测试。
      【解决方案3】:

      就您列出的一些带有较长软件包名称的问题而言,即使从一个项目复制到另一个项目,大多数 IDE 也会为您处理所有这些问题。

      【讨论】:

      • 它们确实让事情变得更容易。但是它们并没有使拥有更长的包名称变得有益。而且人类并不总是按照 IDE 喜欢的顺序做事。
      • @George,我通常使用 Eclipse,并且可以很好地自动处理复制和粘贴或将类拖到其他包等操作。
      • 我不想争论。但我想我会继续提到更多的原因。查看我的编辑。
      【解决方案4】:

      我认为最接近“标准通用”包名称的是默认包(或无包,如果您愿意)。当然这是不好的做法,但我知道我们谈论的是小型实验而不是生产代码。

      但是,默认包的主要缺点之一(除了缺少命名空间之外)是您无法从命名包中导入默认包中的类。

      因此,对于您的实验,如果您只想要单段包名称,请选择适合您的名称:testpkgmain(如您所述)或其他任何名称...

      【讨论】:

        【解决方案5】:

        只要你不使用其他同样懒惰的开发人员编写的代码,这可能没问题 :-) 猜猜如果编译器在默认包中找到两个名为 Base64 的类会发生什么...

        使用正确的包名是为了避免名称冲突。大多数现代 IDE 使将类迁移到不同的包变得轻而易举,所以我认为这不是问题。但是,一旦出现名称冲突,如果您需要返回并迁移 100 个旧项目中的类,就会成为问题。或者当你不这样做时它会成为一个问题,然后你需要修复类的所有不同版本中的一个错误......

        因此,如果您自己编写代码,最简单的选择是将其放入package net.georgebailey。然后通用实用程序可以进入net.georgebailey.util

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-24
          • 1970-01-01
          • 2017-06-14
          • 2011-09-06
          • 1970-01-01
          • 2017-04-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多