Как я могу получить абстрактное перечисление или какой-либо базовый enum?Как я могу перевернуть перечисление Java и все еще перебирать его?
В моем общем коде я хотел бы иметь представление об элементе enum, MyItems, не привязывая себя к конкретному перечислению. Тогда в каждом из моих проектов у меня была бы конкретная реализация.
E.g. Общий код
public interface MyItems {
// Marker interface
}
Проект A
public enum Items implements MyItems {
RED_CAR, BLUE_CAR, GREEN_CAR;
}
Проект B
public enum Items implements MyItems {
BROWN_TREE, GREEN_TREE;
}
Это похоже на работу, но в моем общем коде я не могу написать цикл по моему интерфейса перечислимого, поскольку это не перечисление. В моем общем коде я хотел бы написать
for (MyItems item : MyItems.values())
doSomething(item);
, но я не могу, потому что мой интерфейс только интерфейсы маркеров, и он не имеет .values ().
Любые предложения с благодарностью. Я не знаю, пытаюсь ли я полностью ошибиться.
Спасибо за ваш ответ, который я изучу и попытаюсь понять полностью. Чтобы ответить на ваш вопрос, я не думаю, что я был очень ясен. Мой идеал заключается в том, чтобы иметь возможность «вводить» перечисление, которое я хотел бы использовать, которое изменится в каждом проекте, который использует общий код. Тогда мне бы хотелось, чтобы общий код имел возможность перебирать перечислимое число и делать вещи. – Pengin
Если это нужно, чтобы иметь возможность перебирать его, и вы хотите сделать это полиморфно, то, что вам нужно ввести, - это завод, показанный в моем ответе. Это позволит вам правильно перебирать значения. –