Java:导入与另一个import语句冲突

时间:2012-01-11 09:44:47

标签: java import importerror

我已将现有Java应用程序导入我的工作区。 我看到,在Application中的不同包中存在一个具有相同名称的类。

例如,在

中出现名为“Status.java”的类
com.tata.model.common.Status;
com.bayer.frontlayer.dao.Status;

当我尝试在一个类中使用它们时,例如如下所示

import com.tata.model.common.Status;
import  com.bayer.frontlayer.dao.Status;
public class Adapter
{

}

它开始在Eclipse中声明错误

  

import com.bayer.frontlayer.dao.Status 与另一个导入语句冲突

无论如何都可以在不改变类名的情况下解决这个问题吗?

谢谢。

3 个答案:

答案 0 :(得分:31)

您可以显式使用它们而无需导入它们,因此包含的包名称可以区分两者:

 //No imports required!
public class Adapter
{
     private com.tata.model.common.Status x;
     private com.bayer.frontlayer.dao.Status y;
}

答案 1 :(得分:11)

您只能导入其中一个类,并使用另一个类的完全限定名称。

e.g。

import com.tata.model.common.Status;
//import  com.bayer.frontlayer.dao.Status;

class SomeClass{
    void someMethod(){
       new Status(); //  com.tata.model.common.Status
       new com.bayer.frontlayer.dao.Status(); //com.bayer.frontlayer.dao.Status
    }
}

虽然我认为如果您只使用两个类的完全限定名称,在您的情况下会更容易混淆。

答案 2 :(得分:3)

在适用的地方直接申请完整的班级名称。例如 -

public class SomeClass {

public someMethod() {

com.myapp.someotherpackage.Status = "something";

com.some.other.package.Status = "otherthing";

if(com.myapp.someotherpackage.Status == com.some.other.package.Status) {

}
....
}
}