У меня есть интерфейс повреждаемого следующегоJava - прохождение ArrayList типа интерфейса
public interface Damageable {
public void handleCollision(float impulse);
}
класс, который реализует этот интерфейс, BaseObject
public class BaseObject implements Damageable
Теперь в третьем классе, у меня есть ArrayList из тип BaseObject
public class ObjectManager {
public ArrayList<BaseObject> bodies;
То, что я пытаюсь сделать, - передать тела ArrayList методу anoth эр класс, который принимает ArrayList
public CollisionManager(ArrayList<Damageable> _bodies) {
bodies = _bodies;
}
Java не позволяет мне делать новые CollisionManager (тела), где тело имеет типа ArrayList и BaseObject реализует повреждаемую
Я попытался отливка. Говорит, что нельзя использовать от ArrayList<BaseObject>
до ArrayList Также попытался использовать Class<? extends Damageable>
, но тогда я не могу вызывать методы, объявленные в интерфейсе Damageable. Как передать ArrayList?
Заканчивать этот пост: http://stackoverflow.com/questions/6965035/why-cant-a-method-take-a-collectionsubclass-when-the-methods-signature-is-de – SirPentor