我知道有很多類似的問題,但我真的沒有找到有效的答案來解決我的問題。獲取「?」類的類型在ArrayList <?擴展類>
我有一個抽象類Entity
。 然後我有這兩個類,Biker
和Pedestrian
,都延伸Entity
。
我需要在這兩個類兩個ArrayList
, 進行操作的話,我有一個方法
private void handleEntities(ArrayList<? extends Entity> entities) {...};
這個方法應該同時更新ArrayList
。
鑑於ArrayList<Biker>
和ArrayList<Pedestrian>
可能都是空的,有沒有辦法獲得該方法正在使用哪兩個類?我知道我可以通過一些其他參數的方法,我只是想知道,如果我可以做像entities.getObjectClass()
這最終會返回Biker
或Pedestrian
。
預先感謝您!
編輯: 按照要求,用例:
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
}
請給出完整的用例說明爲什麼你需要這個 –
另外,還有[獲取泛型類型的java.util.List](http://stackoverflow.com/questions/1942644/get-generic-type- of-java-util-list) – 4castle
@ 4castle謝謝你,鏈接幫了我。 – Matteo