0

对于这个问题的幼稚性质,我提前道歉,但我是 Java 开发的新手,我一直在寻找答案。开始...

我想根据目的或功能组织我的 Java 项目配置文件。换句话说,我想有一个像这样组织的java项目

  • 应用
    • FXML
    • JDBC
    • 图形用户界面
    • 核心逻辑

该组织立即建议一个带有子文件夹的文件夹。我的问题是 NetBeans IDE 将这种范例用于子包而不是简单的子文件夹。

这对我来说有问题的原因是我想使用成员访问和可见性限制并且仍然在我的项目文件中操作。尽管这个特定的项目不会成为一个 API,但我仍然不希望公开我的所有类和类成员。

特别是,如果我创建一个...

protected final Client getClientByIndex(int idx) { ... } 

...在 JDBC 文件夹中的类文件中,理想情况下,我希望仍然能够将此文件视为同一个包的一部分,因此我的项目中的其他类可以访问。但是,由于 NetBeans 仅使用子文件夹范例来描述子包,因此除非我遗漏了什么,否则这似乎是不可能的。关于受保护访问的 Java 规范对此非常清楚:

protected 修饰符指定该成员只能在其自己的包中访问(与 package-private 一样),此外,它的类在另一个包中的子类也可以访问。

所以......如果我想将我的项目文件组织到子文件夹中,我必须要么作为子包这样做,要么将所有内容设为公共或子类(对我来说不理想),或者......我必须只放置我希望的所有项目文件在同一个包中放入同一个文件夹(也不理想)。

是否有一个 IDE 可以在构建时区分项目子文件夹和打算作为子包的文件夹?在我看来,这种区别应该可以通过构建文件中的适当描述符来实现。是否有允许这样做的IDE?这是否仅适用于自定义 Ant 文件?

4

1 回答 1

3

您正在描述一个多模块项目 - 一个由多个模块组成的项目,其中每个模块(通常)编译成自己的 *.jar。所有 IDE 都以一种或另一种方式支持这一点(在 intellij 的想法中,您可以通过选择文件 - > 新模块来添加模块),但创建此类项目的最佳方法是使用支持模块并拥有 IDE 的构建系统选择导入项目。 maven是一个非常流行的“构建系统”,可以很容易地用于创建多模块项目。有关详细信息,请参阅maven book 的第 6 章。

于 2013-03-10T04:18:56.380 回答