抽象クラス Drawn にこのハッシュマップがあり、Drawn を拡張するすべてのクラスのすべてのインスタンスでそれを埋めようとしています。次のようにマップを初期化します。
public static HashMap<Integer, ? extends Drawn> drawns = new HashMap();
次のように、ハッシュ テーブルに要素を追加しようとします。
//this code is in the abstract class Drawn()
public void init(){
idCount++;
setID(idCount);
drawns.put(idCount,this);
}
そして、私は次のように反復しようとします:
for(<Integer, ? extends Drawn> E : Drawn.drawns.values()) {
E.draw();
}
イテレータと init() コードの両方にコンパイル時エラーがあります。ただし、型パラメーターを Drawn に変更すると、すべてをコンパイルする代わりに、サブクラスのインスタンスをハッシュ テーブルに追加しても、反復子によって検出されません。