Как я могу представить общие типы в одной коллекции?Коллекция для общих типов
public interface Rule<T> {
String execute(T dataProvider);
}
public interface DataProvider {
// No common functions as of now
}
public class RulesExecutor {
private Map<String, List<Rule>> documentToRuleListMap;
public RulesExecutor(Map<String, List<Rule>> documentToRuleListMap) {
this.documentToRuleListMap = documentToRuleListMap;
}
public executeRules(DataProvider dataProvider, String document) {
// some logic here
}
}
Можно хранить карту, как показано на RulesExecutor
sconstructor?
Если нет, то какова правильная структура данных для хранения этой информации?
Если 'executeRules' будет применять правила к' DataProvider', то типы должны быть более жесткими. Вероятно, ограничение на 'RulesExecutor' хочет быть' ', а параметр' dataProvider' для 'executeRules' хочет иметь тип' T'. –
Таким образом, мой RulesExecutor станет конкретным для определенного правила. Тем не менее, моя идея правила заключается в следующем: 1. Храните документ в RuleListMapping 2. Чтобы выполнить список правил, соответствующих документу, при передаче документа в качестве ввода – user1269701
@TomAnderson: спасибо за призывы! –