Tôi vẫn còn khá mới với Java, vì vậy tôi có thể thiếu một cái gì đó hiển nhiên ở đây.Chuyển loại lớp sang phương thức, sau đó truyền tới loại đó?
Tôi có đoạn code sau đây mà tôi sử dụng để chọn loại lớp từ một danh sách của tất cả các đơn vị của tôi:
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;
}
đó làm việc tốt, nhưng nó có nghĩa là khi gọi phương pháp này tôi vẫn cần phải cast nó để lớp ở phía bên kia. Ví dụ:
asteroid = (Asteroid)PickEntities(Asteroid.class);
Những gì tôi muốn làm là sử dụng lớp tôi đi qua để lớp PickEntities tôi (tham số cls) và sau đó đúc mảng trở về (allEntities) để rằng loại.
Có cách nào để thực hiện việc này không? Bất cứ khi nào tôi thử nó chỉ nói với tôi rằng 'cls' không phải là một loại và không thể được sử dụng để đúc.
Mảng lớp được xác định ở đâu? – Antimony