我已将现有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 与另一个导入语句冲突
无论如何都可以在不改变类名的情况下解决这个问题吗?
谢谢。
答案 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) {
}
....
}
}