在我正在使用的Java代码中,我们有一个接口来定义我们的数据访问对象(DAO).大多数方法都采用数据传输对象(DTO)的参数.当DAO的实现需要引用特定类型的DTO时,会出现问题.然后该方法需要做一个(对我完全不必要的DTO转换为SpecificDTO.不仅如此,但编译器不能对DAO的特定实现强制执行任何类型的类型检查,DAO的特定实现应仅作为其特定类型的参数. DTO.我的问题是:我如何以尽可能小的方式解决这个问题?
你可以使用泛型:
DAOdao = new SpecificDAO(); dao.save(new SpecificDTO()); etc.
您的DAO类看起来像:
interface DAO{ void save(T); } class SpecificDAO implements DAO { void save(SpecificDTO) { // implementation. } // etc. }
SpecificDTO将扩展或实施DTO.