2

Javaでの継承。このようにすることは可能ですか?

List<ParentEntity> loc = Locations, 

どこにLocationsありますかList<ChildEntity>

4

2 に答える 2

5

いいえ、それはできません。ジェネリックではポリモーフィズムは許可されていません。

ただし、次のことができます。-

List<? extends ParentEntity> loc = new ArrayList<ChildEntity>();

はい、その割り当て後、を除いて、リストに新しいアイテムを追加することはできませんnull。それはあなたが耐えなければならない制限です。

したがって、最初にを作成し、それを入力ArrayList<ChildEntity>してから、に割り当てることができますthe LHS

于 2012-11-23T15:49:52.833 に答える
4

@Rohit Jainが言ったように、彼の答えは限られています。

次のような回避策があります。

List<ParentEntity> loc = new ArrayList<ParentEntity>()
loc.addAll(locations);

今回の制限は、List 実装の初期型が失われることです。さらに重要なことは、loc への変更が場所に反映されないことです。

于 2012-11-23T15:53:09.130 に答える