这段代码的泛型写法public Review addProjectSpecialty(Integer reviewid, List<Integer> projectspecialtyids) { ReviewDO reviewdo = basedorepo.findById(reviewid).get(); projectspecialtyids.forEach(item -> { ProjectSpecialtyDO projectspecialtydo = projspecdorepo.findById(item).get(); reviewdo.getProjectSpecialtyDOs().add(projectspecialtydo); }); return dataconverter.toTModel(basedorepo.save(reviewdo)); }
时间: 2023-06-13 12:03:14 浏览: 136
cpp代码-模板 泛型 template<typename> template<class>
这段代码是一个添加项目特长的方法,使用了泛型。其中,`Review` 是一个业务实体类,表示评审信息;`ReviewDO` 是一个持久化实体类,表示评审信息的持久化对象;`basedorepo` 和 `projspecdorepo` 是数据访问层的接口,用于对数据库进行操作;`dataconverter` 是一个数据转换器,用于将持久化对象转换为业务实体对象。
具体来说,这个方法的作用是将指定的项目特长添加到某个评审信息中。首先,根据评审信息的 ID 从数据库中查询出对应的 `ReviewDO` 对象。然后,遍历项目特长的 ID 列表,根据每个 ID 从数据库中查询出对应的 `ProjectSpecialtyDO` 对象,并将其添加到 `ReviewDO` 对象的 `projectSpecialtyDOs` 列表中。最后,将更新后的 `ReviewDO` 对象保存到数据库,并将其转换为业务实体对象 `Review` 返回。
这里使用了泛型,是为了让该方法能够处理不同类型的实体对象,而不仅仅局限于 `Review` 类型。具体来说,该方法的泛型类型参数应该是 `<T extends BaseEntity>`,其中 `BaseEntity` 是所有实体对象的基类,包含了一些公共属性和方法。这样,该方法就可以处理所有继承自 `BaseEntity` 的实体对象了。
阅读全文