Java: импорт сталкивается с другим оператором импорта - PullRequest
20 голосов
/ 11 января 2012

Я импортировал существующее 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 сталкивается с другим оператором импорта

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

Спасибо.

Ответы [ 3 ]

31 голосов
/ 11 января 2012

Вы можете использовать их явно, не импортируя их, поэтому имя включенного пакета различается:

 //No imports required!
public class Adapter
{
     private com.tata.model.common.Status x;
     private com.bayer.frontlayer.dao.Status y;
}
11 голосов
/ 11 января 2012

Вы можете импортировать только один из классов и использовать полное имя для другого.

, например

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 голосов
/ 11 января 2012

Непосредственно применять полные имена классов, где это применимо.Например,

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

}
....
}
}
...