Я поднимаюсь по кривой обучения Swing и читаю о InputMap
и ActionMap
. В книге О'Рейли о Swing сказано, что ключи для ActionMap
могут быть любыми Object
, но по соглашению String
с.
Есть ли причина использовать объект, отличный от String
? (например, enum
)
Я думаю, что это плохая практика - использовать строковые литералы, поскольку они могут быть опечатаны без каких-либо ошибок компиляции. Поэтому я предполагаю, что рекомендуется хранить ключ ActionMap в виде неизменяемой переменной класса static final
, определенной один раз (например, MyAction.NAME
).
edit: Просто чтобы уточнить, мысль, которая пришла мне в голову, когда я читал документы, заключалась в том, чтобы использовать enum
вместо String
. Есть ли причина, по которой я должен использовать String
?