在Java中,在同名类中导入名为ClassX的类是否受到限制?

问题描述

| 如果我在a.b.c包中有一个名为ClassX的类,并且我想导入该类a.b.x.ClassX Java中是否有一些限制阻止我这样做?就用法而言,我始终可以使用导入类的完全限定名称,对吗? Eclipse似乎无法解决此导入问题,我需要知道Java本身是否存在导致问题的限制。 以下代码是否合法: a \\ b \\ c \\ ClassX.java:
package a.b.c;
public class ClassX {
//
}
a \\ b \\ x \\ ClassX.java:
package a.b.x;

import a.b.c.ClassX;

public class ClassX {
    public static void main(String[] args) {
        a.b.c.ClassX newObj = new a.b.c.ClassX();
    }
}
如果没有,那为什么呢?     

解决方法

        您不能导入相同的类,因为这会导致名称冲突。您必须使用完全限定的名称,例如;
package a;
class B{}

package b;
class B{
   a.B objectPackageaB;
   b.B objectPackagebB;
   B objectB; // it is legal,it maps to b.B. but if you import class B from package a,then it would be illegal..   
}
让我们来说明是否从包a中导入类B;
package b;

import a.B;

class B {
     B objectB ; // illegal.. which B,package a or package b..
     b.B objectbB; //legal
     a.B objectaB;  //legal

}
    ,        我认为没有,但是要代替
a.b.c.Classx newObj = a.b.c.ClassX()
,而是写
a.b.c.ClassX newObj = a.b.c.ClassX()
(Class_X_,否Class_x_),它应该可以工作:-)