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



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

例如,中存在一个名为"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中给出一个错误,说明

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

有没有办法在不更改类名的情况下解决这个问题??

谢谢。

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

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

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

例如

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
    }
}

尽管我认为,如果您只是为两个类使用完全限定的名称,那么在您的情况下就不会那么令人困惑了。

在适用的情况下直接应用完整的类名。例如

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) {
}
....
}
}

最新更新