在Eclipse中,我可以在包内创建文件夹吗?

5

我有一个项目,源文件夹名为“app”,在这个包里,我有一个名为“models”的子包。我能否在这个子包中创建文件夹或其他类型的子目录?这样最终我将拥有类似于下面这样的结构:

-app
   -models
       -Folder1
           -file1
           -file2
       -Folder2
           -file3
           -file4

当我尝试通过点击“新建->其他->文件夹”来强制创建文件夹时,我无法向其中添加任何内容。

这是Java的包结构吗? - Julien Bourdon
4个回答

3
在一个包内创建文件夹只是创建一个新的包。
例如,文件夹结构。
 - app
    - models

等同于包app.models

在这个结构中添加一个新文件夹Folder1

例如:

-app
  -models
    -Folder1

这相当于包app.models.Folder1


2

在包中的文件夹其实就是另一个包,所以你需要 new->package ,然后输入 app.models.folder1。


1
我不行 :/ 它在“app”内创建,不允许我将其推入。 - Xyzk
我不知道你的意思。如果app是你的src文件夹,models是一个包,那么你应该能够创建子包。 - Scary Wombat
而且它不允许我这样做。如果我在应用程序内右键单击某个文件,然后选择新建,我无法选择包。如果我强制执行,它会在“app”内创建一个包,而不是在“views”内。我无法将其拖到视图内(光标会变成“不允许”的状态)。 - Xyzk
如果您想在新包中创建一个新类,则单击“新建”->“类”,然后键入新包名称。您也可以单击“新建”->“包”来创建一个新的包(文件夹)。 - Scary Wombat
好的,Eclipse不允许我这样做。 - Xyzk
请再次阅读我的答案,并尝试理解您所做的错误。每个Eclipse开发人员都在做您所要求的事情。 - Scary Wombat

1

包和文件夹在概念上略有不同。

通常,您将处理相同功能的类分组到同一个包中。例如,您应用程序的核心类可以位于com.example.myapp.core,UI类可以位于com.example.myapp.ui。这些包由文件夹结构在磁盘上表示。

在我看来,您不应更改此包结构以添加非Java类文件。我建议在应用程序树的顶部添加一个“resources”文件夹,以便将数据和类分开。

但是,如果您只想添加子包,请勿创建新文件夹,只需创建一个新包,例如app.models.Folder1.file1,即可获得所需的结构。

您可以参考此问题了解有关打包约定的更多信息:有哪些最佳实践适用于(Java)包组织?


谢谢,那很有帮助。看起来Eclipse不允许将包放在另一个包中,但我可以按照您建议的方式创建一个包。 - Xyzk
1
这是因为文件夹和包不是同一回事。包是面向对象编程中的一个概念,比如Java,它们恰好由磁盘上相应的文件夹结构表示。 - Julien Bourdon
这可能是你正在寻找的答案:https://stackoverflow.com/questions/11772969/package-presentation-in-java-ee-perspective-in-eclipse - Ravinda Lakshan

1

默认的包表示是平面的。你想将其改为分层

enter image description here


这就是你要找的答案。你可以创建另一个包,如果该包的呈现方式是分层的,那么你就会得到所提到的情况。 - Ravinda Lakshan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接