Wciąż jestem całkiem nowy w Javie, więc być może brakuje tu czegoś oczywistego.Przekazywanie typu klasy do metody, a następnie rzutowanie na ten typ?
Mam następujący kod, który używam do piłki typy klas z listą wszystkich moich podmiotów:
public Array<?> PickEntities(Class<?> cls) {
Array<? super SpriteEntity> allEntities = new Array<Object>();
for (SpriteEntity entity : MyGame.AllEntities) {
if (entity.getClass() == cls) {
allEntities.add(entity);
}
}
return allEntities;
}
To działa dobrze, ale to oznacza, że gdy wywołanie tej metody nadal muszę oddać go do klasa po drugiej stronie. Na przykład:
asteroid = (Asteroid)PickEntities(Asteroid.class);
Co chciałbym zrobić, to użyć klasy ja przechodząc do mojej klasy PickEntities (parametr CLS), a następnie rzucić powracających array (allEntities) do że typu.
Czy istnieje sposób, aby to zrobić? Ilekroć próbuję, po prostu mówi mi, że "cls" nie jest typem i nie można go używać do rzucania.
Gdzie jest zdefiniowana klasa Array? – Antimony