Set<? extends Politician>
を引数とする別の関数に渡される既存のSet<Trump>
があります。 Set<? extends Politician>
には、Politician
オブジェクトまたはTrump
オブジェクトのみが含まれます。<? Animal>
Politican
クラスは変更できません。 Trump
クラスは変更可能です。
次のことをきちんと行う方法がありますか、またはこれを行うために派生クラス(Trump
)をどのように再設計する必要がありますか?
public Set<Trump> getSetOfTrump(Set<? extends Politician> politicianSet)
{
//do some processing
for(Politician pol : politicianSet){ //compiler is ok.. but I dont need Politician Object here
}
for(Trump t : politicianSet){ // any way to get Trump Objects out of politicianSet?
}
}
'instanceof'またはリフレクションを使用せずに? – bradimus
'instanceof'を使用すると、コードの匂いの証拠になる可能性がありますが、スーパータイプのコードにアクセスできない場合は、既知のサブタイプのインスタンスを操作するための最良の、最も速く、最も安いオプションですタイプ。 – scottb
@bradimus ..はい..リフレクションまたはinstanceofなしでそれを行うには...関数の派生クラスまたは引数を再設計するのは大丈夫です。 – user46743