繁体   English   中英

在Java中,应该创建新的Package,Folder还是Source Folder?

[英]In Java, should I be creating a new Package, Folder, or Source Folder?

关于SO的问题有很多,但我对Java开发是完全陌生的,我不知道解决此问题的正确方法。

我有一个C#解决方案,包含两个项目(我的应用程序和一个单元测试项目),并且在应用程序内,大多数东西都放在例如文件夹中。 接口,异常等

我正在尝试在Java / Eclipse中重新创建它,但我不知道如何。 我最终得到了很多包装,听起来真的很糟糕。 我也尝试添加一个源文件夹,但是最终被打包了。

有人能指出我正确的方向吗?

即,应该使用哪些代表我的单元测试项目/单元测试集,以及仅用于组织内容的子文件夹。

编辑:它还说不建议使用默认程序包。 我该怎么办?

编辑2:这是它的样子。 这看起来隐约正确吗? 我原来的C#解决方案在右边。

我的版式

在典型的Java eclipse项目中,您将具有一个或多个源文件夹(例如,一个用于应用程序代码,一个用于您的单元测试)。

每个文件夹都包含一个软件包树,通常从您的基本软件包开始,例如com.mycompany.myapp

为了避免名称冲突,程序包名称通常以代码作者的实体的域名开头,从顶级域名开始,然后倒退(从更一般到更具体)。 这样,每个类的完全限定名称都是唯一的。 例如,如果google创建一个名为List的类,它将被称为com.google.List ,并且不会与现有的java.util.List接口冲突。

您可以在此基本软件包中包含无限数量的软件包,例如:

com.mycompany.myapp.persistence
com.mycompany.myapp.domain
com.mycompany.myapp.services
com.mycompany.myapp.web

这完全取决于您的项目以及组织代码和类的方式。

在逻辑级别上,包以点作为分隔符来命名。 它们包含Java类。

在物理磁盘级别上,每个程序包都是一个目录。 Java类包含在.java文件中(最常见的是每个文件一个类)。

在Eclipse中,“源文件夹”是项目内部的文件夹,Eclipse知道该文件夹包含Java源文件。 当您构建项目时,它将被编译包含在输出中(例如JAR文件)。

在Eclipse中,通常会在逻辑级别查看它们,并显示软件包。 当您告诉Eclipse“创建新软件包”时,它将为您创建目录。 例如,如果您告诉它创建com.mycompany.myproject包,它将自动创建一个com文件夹,其中包含一个mycompany文件夹,该文件夹包含一个myproject文件夹。

在Java中,源树结构必须与包结构相匹配

所以foo.bar包必须放在

src / foo / bar

也可能不建议使用默认软件包-但您仍然可以使用它-最好将东西放在软件包中

在Java中,根据项目类型流动不同的项目开发结构。 因此,由于您是Java和Eclipse的新手,因此最好安装maven插件并创建maven项目,并根据您的项目类型选择原型,例如独立或基于Web的原型。 该Maven插件将创建项目结构,包括封装,测试包的源文件夹等,你可以从中获取更多关于项目结构

使用默认包可能会导致名称空间冲突。 假设您正在创建一个包含MyClass类的库。 有人在他的项目中使用您的库,并且在他的默认包中还有一个MyClass类。 编译器应该做什么? Java中的Package实际上是一个可以完全标识您的项目的名称空间。 因此,在实际项目中不要使用默认程序包非常重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM