似たような疑問がたくさんあることは知っていますが、私の質問に対する正当な答えは実際には見つかりませんでした。「?」のクラスタイプを取得します。 ArrayList <? extendsクラス>
私は抽象クラスEntity
を持っています。 私はこれら2つのクラス、Biker
とPedestrian
を持っています。両方ともEntity
です。
は、私はこの方法では、両方のArrayList
を更新する必要があり、私はこの方法
private void handleEntities(ArrayList<? extends Entity> entities) {...};
を持って、そうするために両方のクラスの2 ArrayList
、 に対して操作を実行する必要があります。
ArrayList<Biker>
とArrayList<Pedestrian>
の両方が空の場合、メソッドがどの2つのクラスのどちらを使用しているかを取得する方法はありますか?私は方法に他のパラメータを渡すことができることを知っている、私はちょうどBiker
またはPedestrian
を返すentities.getObjectClass()
のような何かをすることができるかどうかを知りたい。
ありがとうございます!
編集:要求、ユースケースとして :
private void handleEntities(ArrayList<? extends Entity> entities) {
// an hypothetical switch case
if (entities.getObjectClass().toString() == Biker.class.getSimpleName())
// add element to Biker ArrayList
else if (entities.getObjectClass().toString() == Pedestrian.class.getSimpleName())
// add element to Pedestrian ArrayList
}
これが必要な理由の完全なケースを表示してください –
また、[Generate type of java.util.List]を取得しています(http://stackoverflow.com/questions/1942644/get-generic-type- of-java-util-list) – 4castle
@ 4castleありがとう、リンクが私を助けました。 – Matteo