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 に答える