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