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 появилась ошибка, указывающая

import com.bayer.frontlayer.dao.Status сталкивается с другим оператором импорта

Есть ли способ решить эту проблему без изменения имени классов?

Спасибо.

Ответы

Ответ 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
    }
}

Хотя я думаю, что это будет менее запутанным в вашем случае, если вы просто использовали полностью квалифицированные имена для обоих классов.

Ответ 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) {

}
....
}
}