我有两个相同的模型类,但它们位于不同的包中。
第一个是: model.my.prod.Model
和第二个 model.my.test.Model
我还有一个用于此 model.my.prod.Model
的简单映射器,它采用 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");
}
}
}
现在我想将这个Mapper
也用于model.my.test.Model
,是否可以不复制这个Mapper
并更改 Model
包?
最佳答案
您可以使用完全限定的类名。它会使您的代码变得丑陋,但您将能够在 Mapper 中使用 Model 类。
所以,而不是
public static String createModelMap(Model model)
您将有两种方法
public static String createModelMap(model.my.prod.Model model)
public static String createModelMap(model.my.test.Model model)
此外,我建议您使用不同且更有意义的名称重命名这两个类。 而且,为生产和测试类提供包也是一个坏主意,您可以使用默认的 maven/gradle 项目结构来避免此类包
关于java - 通用使用 2 个相同的类但来自不同的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44307508/