1

如何在单个集合中表示泛型类型?

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 
    }
}

是否可以存储RulesExecutorsconstructor 中显示的地图?

如果不是,那么存储此信息的正确数据结构是什么?

4

1 回答 1

1

是否可以存储如 RulesExecutor sconstructor 中所示的地图?如果不是,那么存储此信息的正确数据结构是什么?

当然:

public interface Rule<T> {
  String execute(T dataProvider)
}


public interface DataProvider {

}


class RulesExecutor<T extends DataProvider> {

   public RulesExecutor(Map<String, List<Rule<T>>> documentToRuleListMap) {
   }

   public void executeRules(T dataProvider) {
     // some logic here 
   };
}

请注意,由于粗心的错误,您发布的代码将无法编译:

public interface Rule<T> {
  String execute(T dataProvider) // *** missing semicolon
}


public interface DataProvider {

}

public class RulesExecutor() { // *** class declarations have no parenthesis

请在发布代码时更加小心,并确保发布真实代码,而不是某种代码。它使您更容易理解您的问题并在您这样做时提供帮助。

于 2013-08-11T02:43:06.070 回答