EnumsetラッパーのためのAbstractActions
-
29-09-2019 - |
質問
たいと思いローシリーズのスイングを組みコンテナ実行時にアクセスして一定の名前とが可能でEnum.の目的はこの両方を制限する行為を可能にするととも読む
当初、私はを考えるような動態enumを参照 http://blog.xebia.com/2009/04/02/dynamic-enums-in-java/)がJava酒好きポイント以下のことなら行動に変更はありません。
理想的には、どういうラッパーを含む AbstractAction
インスタンスが有効/無効にできることをご参照各アクションを通じて、シンボル名です。
編集:コンサルタントも同行していぐる.
解決
いつものようになります:
public enum Actions {
COPY( new AbstractAction() {
public void actionPerformed(ActionEvent e) {
//do something
}
}),
PASTE( new PasteAction() );
public final AbstractAction action;
private Actions(AbstractAction action) {
this.action = action;
}
}
//...
Actions.COPY.action...;
そしてその他っているため、使用のenumとは、EnumSetはEnumMap.個人的に思うのは大きな値でも数名分野なenum.
いと思ったのですが何らかの行動レジストリのようになります:
public class ActionsManager {
private final Map<String, Action> actions;
private final Map<User, Set<String>> enabledActions;
public Action get(String id);
public void register(String id, Action action);
public void deregister(String id);
public boolean isEnabled(User user, Action action);
}
実に残しています。
所属していません StackOverflow