是否有支持相同包和类名的Java IDE?

时间:2014-04-16 03:10:32

标签: java eclipse ide

大家。我有一个Java Eclipse项目。它包含许多包,类名可以与包相同,如:

org.a
  a.java <--------- this class is org.a.a
  b.java
org.b
  a.java
org.a.a <---------- this package is also org.a.a
  a.java
  b.java

编译项目时,Eclipse报告错误:类型&#34; xxx&#34;与包裹发生碰撞。那么是否有支持相同包和类名的Java IDE?或者有没有办法可以在Eclipse中编译它?

2 个答案:

答案 0 :(得分:1)

简短的回答是否定的,如果您在具有相同名称的不同包中有类,则需要使用它们的绝对名称(package.name)在代码中引用它们,这就是拥有包名称空间的要点。

因此,在您的代码中,您需要明确使用org.a.aorg.a.a.a,而不是使用import语句......

例如......

org.a.a a1 = new org.a.a();
org.a.a.a a2 = new org.a.a.a();

答案 1 :(得分:1)

这不是Eclipse问题,而是Java功能。

The Java Language Specification makes the following restrictions

  

软件包的成员子包以及所有顶级   类类型(§7.6,§8(类))和顶级接口类型(§9   (接口))在所有编译单元(第7.3节)中声明   封装

  

可能不包含两个同名的成员,或者a   编译时错误结果。

在您的示例中,org.a是一个包。您希望它有两个成员:类型org.a.a和包org.a.a Java语言不允许这样做。


Java约定声明您的包名称应以小写字母开头,而类型名称应以大写字母开头。如果遵循这些惯例,就不会出现这样的问题。