ドメインレベルのオブジェクトから DTO に変換するオブジェクト変換クラスがあります。
私は効果的に次の構造を持っています
class RuleGroupDTO {
List<RuleDTO> ruleDTOs;
// other members
EvaluationRuleDTOAssignmentRuleDTOどちらもRuleDTOから拡張されています
変換用の私の API は次のとおりです。
public RuleGroupDTO convert(RuleGroup ruleGroup);
したがって、ドメインRuleGroupを convert クラスに渡すと、 に関連付けられたコードが参照され、内にカプセル化されたまたはRuleGroupが構築されます。EvaluationRuleDTOAssignmentRuleDTOsRuleGroupDTO
RuleGroupDTO を取得すると、 または のList<RuleDTO>いずれかList<EvaluationRuleDTO>が含まれていることがわかりますList<AssignmentRuleDTO>。
ただし、正しいクラス バージョンを取得するには、 をループして、またはList<RuleDTO>にキャストする必要があります。List<EvaluationRuleDTO>List<AssignmentRuleDTO>
これは面倒に思えますが、このループ + キャストの実行を回避するために、いくつかの一般的な概念を利用できると考えています。
ここでジェネリックを利用するために API またはオブジェクト構造を変更するには、どのようなアプローチが考えられますか?