我有一个对象转换类,可以将我的域级别对象转换为 DTO。
我实际上具有以下结构
class RuleGroupDTO {
List<RuleDTO> ruleDTOs;
// other members
EvaluationRuleDTO
并且AssignmentRuleDTO
都从 RuleDTO 扩展
我的转换 API 如下:
public RuleGroupDTO convert(RuleGroup ruleGroup);
因此,当我将域传递RuleGroup
给转换类时,它会查看与 关联的代码RuleGroup
,然后构造EvaluationRuleDTO
或AssignmentRuleDTOs
封装在RuleGroupDTO
.
当我取回我的 RuleGroupDTO 时,我知道它将包含一个List<RuleDTO>
要么是List<EvaluationRuleDTO>
要么List<AssignmentRuleDTO>
。
但是,要获得正确的类版本,我需要遍历List<RuleDTO>
并强制转换为List<EvaluationRuleDTO>
或List<AssignmentRuleDTO>
这看起来很乱,我想我可以利用一些通用概念来避免执行这个循环+强制转换。
在这里更改我的 API 或对象结构以利用泛型的可能方法是什么?