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

2022-09-01 14:06:30

我已将现有 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中给出一个错误,指出

import com.bayer.frontlayer.dao.status 与另一个 import 语句发生冲突

有没有在不更改类名称的情况下解决此问题?

谢谢。


答案 1

您可以在不导入它们的情况下显式使用它们,因此包含的包名称将两者区分开来:

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

答案 2

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

例如:

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

虽然我认为在你的情况下,如果你只是对两个类都使用完全限定的名称,那会不那么令人困惑。