web-dev-qa-db-ja.com

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が別のインポート文と衝突します

とにかくクラスの名前を変更せずにこれを解決する方法はありますか?

ありがとうございました。

22
user663724

それらをインポートせずに明示的に使用できるため、含まれるパッケージ名は2つを区別します。

 //No imports required!
public class Adapter
{
     private com.tata.model.common.Status x;
     private com.bayer.frontlayer.dao.Status y;
}
32
user130076

クラスの1つだけをインポートして、もう1つのクラスに完全修飾名を使用できます。

例えば.

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
    }
}

両方のクラスに完全修飾名を使用した方が混乱が少ないと思います。

11
Vlad

該当する場合は、完全なクラス名を直接適用してください。例えば-

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

}
....
}
}
2
Acn