私は2つの同じモデルクラスを持っていますが、それらは異なるパッケージにあります。 まず一つは次のとおりです。model.my.prod.Model
と第二model.my.test.Model
2つの同じクラスの異なるパッケージからの一般的な使用
私もパラメータとしてModel
クラスを取るこのmodel.my.prod.Model
のためのシンプルなマッパーがあります
public class Mapper{
private static Map<Model, String> models= new HashMap<>();
static {
models.put(Model.IMAGE_JPG, MediaType.IMAGE_JPEG_VALUE);
models.put(Model.IMAGE_GIF, MediaType.IMAGE_GIF_VALUE);
}
public static String createModelMap(Model model) {
if (models.containsKey(model)) {
return models.get(model);
} else {
throw new ModelException("Exeception");
}
}
}
今私がmodel.my.test.Model
のためにも、このMapper
を使用したいが、これはMapper
のコピーなしで可能ですかModel
パッケージを変更しますか?あなたは完全修飾クラス名を使用することができます(必要なとき)
public class Mapper{
// private static Map<Model, String> models= new HashMap<>();
private static Map<Object, String> models= new HashMap<>();
static {
models.put(Model.IMAGE_JPG, MediaType.IMAGE_JPEG_VALUE);
models.put(Model.IMAGE_GIF, MediaType.IMAGE_GIF_VALUE);
}
// public static String createModelMap(Model model) {
public static String createModelMap(Object model) {
if (models.containsKey(model)) {
return models.get(model);
} else {
throw new ModelException("Exeception");
}
}
}
ようなパッケージを避けるために、デフォルトの達人/ Gradleのプロジェクト構造を使用することができますそれは解決策ですが、私はそれがに接続されていると思います'createModelMap'関数の重複コードです。 – allocer