Я хотел бы загрузить серию действий Swing в контейнер во время выполнения и получить к ним доступ с помощью имени константы, которое возможно с помощью Enum. Цель этого заключалась бы в том, чтобы как ограничить возможные действия, так и улучшить читаемость.Оболочка Enumset для AbstractActions
Первоначально я рассматривал своего рода динамическое перечисление (см. http://blog.xebia.com/2009/04/02/dynamic-enums-in-java/), но, как указывает Java Drinker, это необязательно, так как действия остаются неизменными.
В идеале, что бы я хотел сделать, это своего рода оболочка, содержащая AbstractAction
экземпляры, которые могут быть включены/отключены и иметь возможность ссылаться на каждое действие через символическое имя.
Редактировать: Вопрос был переформулирован.
Но разве набор возможных действий не ограничен? По крайней мере, для любого конкретного приложения? Не могли бы вы иметь стандартное статическое перечисление со всеми возможными действиями, а во время выполнения у вас есть подмножество разрешенных действий (EnumSet в java). Тогда вы можете проверить это, чтобы узнать, можете ли вы это сделать или нет. Предположим, я не знаю полной ширины вашей проблемы, хотя ... –
Что именно ваши «Swing Actions»? Элементы меню и т. Д., Которые обращены к пользователю? –
@ Java Drinker: Да, набор действий статичен по своей природе. Идеально было бы, чтобы Enum выступал в качестве оболочки для экземпляров Action, чтобы дать каждому Action символическое имя и загрузить его или включить в соответствии с данным пользователем. То, что я хочу сделать, вероятно, не нужно, и я соглашусь на решение с использованием Enumset. Я буду переформулировать свой вопрос с учетом этого. –