0

我的权限很少,每个权限都有一些值,例如 View-2、OWN-1、EDIT-4 等。现在我想根据许可获得这个值,但我不想使用 MAPS。我已经按照以下方式完成了

public enum Permissions
{
    OWN(1), VIEW(2), EDIT(4), DELETE(8), CREATE(16),SUGGEST(32);

    private int permissionValue;

    private Permissions(int value)
    {
        this.permissionValue = value;
    }

    public int getPermissionValue()
    {
        return permissionValue;
    }
}

所以要获得我调用getPermissionValue()方法的值。所以我的问题是:

有没有更好的方法来实现这个有或没有枚举但没有地图?如果是,请帮忙。

4

3 回答 3

2

只需在对象上调用 getPermissionValue()。

所以这可能是最好的尝试

于 2013-04-30T10:55:50.683 回答
1

在具有默认构造函数的枚举上使用EnumSet。调用 enum Permission,调用 EnumSet Permissions。

于 2013-04-30T11:16:00.367 回答
0

是否使用枚举或使用 Map 实现此功能的自己的类的决定应基于可扩展性的必要性:

是否预计“权限”可能经常更改/添加新权限?最重要的是,您需要问自己将来是否会在运行时由用户编辑/创建“权限”。

-> 如果“权限”是固定的,那么你应该像你提议的那样去枚举。

-> 如果用户可能需要能够创建/更改权限,最好将它们建模为自定义实体而不是使用枚举。

于 2013-04-30T11:05:19.880 回答