Скажем, у меня есть arrayList, содержащий элементы разных классов, каждый из которых имеет один и тот же метод: draw ();
У меня есть третий класс с методом drawItems (), который принимает в качестве аргумента arrayList. Теперь, как я могу вызвать метод draw () для этих объектов, если они передаются как общие объекты?
Это ниже не работает. Я понимаю почему.
Java не знает, что у элемента есть такая функция.
Как я могу обойти это?
public void drawItems(ArrayList<T> data)
{
data.forEach((T item) -> {
item.draw();
});
}
UPDATE
Спасибо всем. Я сделал это следующим образом:
1) Создать интерфейс с именем Drawable:
public interface Drawable {
public void draw();
}
2) Реализовать интерфейс в классе Item:
public class Item implements Drawable {
@Override
public void draw(GraphicsContext gc) {
//...
}
}
3) Настройте элементы рисования:
public void drawItems(ArrayList<Drawable> data) {
data.forEach((Drawable item) -> {
item.draw();
});
}