如何避免Java中的类和包之间的名称冲突?

nev*_*219 2 java naming-conventions classname package

我有两个项目,MainCore.我有一个名为com.package.Sample(及其内容)Sample的包和一个名为package 的类com.package.如果我要将两者都包括在内Main,我会遇到一个无法解决的错误 - 在我的实际情况中,它是Sample无法解决的类.我们有构建的ant脚本,并且一直有效.

然而,仔细检查什么要求每一个项目,我发现我可以在包移动com.package.SampleCore连同其依赖关系均Main.在Sample类属技术上里面Main,所以我没把它移走.这使我能够在Eclipse中成功构建.

我想知道几件事:

  • 这在大型项目中很常见吗?
  • 对于这种情况,最好的方法是什么?在研究冲突之前,我认为最好的解决方案是重新考虑这个Sample课程.
  • 但是,如果我不能动弹包装com.package.Sample出来的Main.我该怎么办?或者这是一个永远不会建立的情况?

Kei*_*yne 5

分别回答你的子弹:

  • 我不知道这在大型项目中是否常见,我不会假设.如果代码库被设计为导致名称冲突(特别是在Java中,这使得解决这样的问题变得容易),大型项目可能永远不会变大.
  • 如果名称具有适当的描述性,我不会重构Sample类.但是,我会用全小写字母命名我的包(和子包).你暗示这是一个小项目,所以我猜你可以控制命名.我从来没有在我的回忆制作中看到过在包名中使用任何大写字母的Java代码(商业或开源).由于Java中的约定是使用Pascal case或camel case或者你想要调用它的任何东西,如果遵循该约定,你将永远不会有类/包名称冲突.
  • 当然它会建立.很容易解决.由于您使用的是Eclipse,因此您应该能够在资源管理器中右键单击该软件包,选择"重构",将名称更改为小写,并完成相当多的工作.

祝好运!