Метапрограммирование Java

Я работаю над своим первым настоящим проектом на Java. Я начинаю привыкать к языку, хотя у меня больше опыта работы с динамическими языками.

У меня есть класс, который ведет себя примерно так:

class Single
{
    public void doActionA() {}
    public void doActionB() {}
    public void doActionC() {}
}

И затем у меня есть класс SingleList , который действует как коллекция этих классов (в частности, для библиотеки 2D Sprite и «действия» - это всевозможные преобразования: поворот, сдвиг, масштабирование и т. д.).Я хочу иметь возможность делать следующее:

class SingleList
{
    public void doActionA() {
        for (Single s : _innerList) {
            s.doActionA();
        }
    }

    ... etc ...
}

Есть ли способ просто передать метод (или известный список методов) каждому члену внутреннего списка? В любом случае, без необходимости специально перечислять каждый метод, а затем перебирать каждый внутренний член и применять его вручную?

Чтобы немного усложнить задачу, методы имеют разную степень сложности, но все они имеют тип возвращаемого значения void.

11
задан efritz 18 August 2013 в 06:49
поделиться