2

重複の可能性:
List<Parent> mylist = ArrayList<child>(); を実行できない理由

ポリモーフィズムとメソッドの呼び出しについて質問があります。

私のサービス層の署名はpublic void saveRules(String paramOne, String paramTwo, List<RuleDTO> rules)

じぶんのEvaluationRuleDTO extends from RuleDTO

したがって、コントローラーから次のことを実行しようとします。

service.saveRules(String paramOne, String paramTwo, List<EvaluationRuleDTO> rules).

しかし、これは許可されていList<EvaluationRuleDTOませんList<RuleDTO> rules

これは私にはあまり意味がありません。これは Java 言語の弱点ですか、それともここで欠けている概念は何ですか?

ありがとう

4

1 に答える 1

4

これは、ポリモーフィズムがジェネリックではなくリスト型に適用されているために発生しています。

編集1:マイケルは有用なリンクを含むコメントを投稿しました。

編集2:あなたはできる(なぜ私たちができない理由からList <Parent> mylist = ArrayList <child>();):

List<? extends RuleDTO> list = yourEvaluationRuleDTOList;
于 2012-07-23T22:33:26.330 に答える