J'ai importé une application Java Java existante dans mon espace de travail. Je vois que, une classe du même nom est présente dans différents packages avec dans l'application.
Par exemple, une classe nommée "Status.Java" est présente avec dans
com.tata.model.common.Status;
com.bayer.frontlayer.dao.Status;
Quand j'ai essayé de les utiliser tous les deux dans une classe, par exemple comme indiqué ci-dessous
import com.tata.model.common.Status;
import com.bayer.frontlayer.dao.Status;
public class Adapter
{
}
Il a commencé à donner une erreur dans Eclipse indiquant
import com.bayer.frontlayer.dao.Status entre en collision avec une autre instruction d'importation
Existe-t-il de toute façon pour résoudre ce problème sans changer le nom des classes ??
Je vous remercie.
Vous pouvez les utiliser explicitement sans les importer, donc le nom du package inclus fait la différence entre les deux:
//No imports required!
public class Adapter
{
private com.tata.model.common.Status x;
private com.bayer.frontlayer.dao.Status y;
}
Vous pouvez importer une seule des classes et utiliser le nom complet pour l'autre.
par exemple.
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
}
}
Bien que je pense que ce serait moins déroutant dans votre cas si vous utilisiez simplement les noms complets pour les deux classes.
Appliquez directement les noms de classe complets, le cas échéant. Par exemple-
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) {
}
....
}
}