既存の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が別のインポート文と衝突します
とにかくクラスの名前を変更せずにこれを解決する方法はありますか?
ありがとうございました。
それらをインポートせずに明示的に使用できるため、含まれるパッケージ名は2つを区別します。
//No imports required!
public class Adapter
{
private com.tata.model.common.Status x;
private com.bayer.frontlayer.dao.Status y;
}
クラスの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
}
}
両方のクラスに完全修飾名を使用した方が混乱が少ないと思います。
該当する場合は、完全なクラス名を直接適用してください。例えば-
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) {
}
....
}
}