У меня есть интерфейс Damageable следующим образом
public interface Damageable {
public void handleCollision(float impulse);
}
класс, реализующий этот интерфейс, BaseObject
public class BaseObject implements Damageable
Теперь в третьем классе у меня есть ArrayList типа BaseObject
public class ObjectManager {
public ArrayList<BaseObject> bodies;
То, что я пытаюсь сделать, - передать тела ArrayList методу другого класса, который принимает ArrayList
public CollisionManager( ArrayList<Damageable> _bodies) {
bodies = _bodies;
}
Java не позволяет мне создавать новые CollisionManager (тела), где тела имеют тип ArrayList и BaseObject реализует Damageable
Я попробовал кастинг. Говорит, что нельзя
ArrayList<BaseObject>
в ArrayList
Также попытался использовать Class<? extends Damageable>
, но тогда я не могу вызывать методы, объявленные в интерфейсе Damageable. Как передать ArrayList?