Вызовите одну и ту же функцию в разных классах - PullRequest
1 голос
/ 26 января 2012

У меня есть функция eventIterable() в шести разных классах, каждый с разными именами. Эти классы хранятся в Object[].

У меня есть пользовательский класс ArrayList (мне пришлось создать свою собственную - длинную историю, даже не предлагая использовать стандартную), и в ней вы можете получить доступ к индексам из ArrayList.

Каждый из этих объектов класса хранится по индексу в списке массивов. Однако, так как тип массива Object, я не могу вызывать функции. Я не могу перейти с Object на определенный класс, потому что каждый из классов уникален. Однако все они имеют функцию eventIterable().

Цель состоит в том, чтобы иметь возможность перебирать все классы в ArrayList и запускать функцию eventIterable() в каждом классе.

Ответы [ 2 ]

8 голосов
/ 26 января 2012

Вы должны создать интерфейс, содержащий метод eventIterable(), и заставить все классы реализовать этот интерфейс.

Затем вы можете использовать список этого интерфейса, а не список объектов.

5 голосов
/ 26 января 2012

Создайте интерфейс, который представляет это поведение (трудно понять, что это такое), который имеет единственный метод с именем eventIterable.Затем просто измените тип возвращаемого значения на этот интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...