我对Java还很陌生,可能会错过一些显而易见的东西。
我有以下代码,用于从我的所有实体列表中选择类类型:
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;
}
这很好用,但这意味着当调用该方法时,我仍然需要将其强制转换为另一侧的类。例如:
asteroid = (Asteroid)PickEntities(Asteroid.class);
我想做的是使用我传递给 PickEntities 类的类(cls 参数),然后将返回的数组(allEntities)强制转换为 那个 类型。有没有办法做到这一点?每当我尝试时,它只告诉我 'cls' 不是一种类型,不能用于转换。