【发布时间】:2012-02-21 07:45:55
【问题描述】:
我想将此c#权限模块移植到java,但是当我无法将数值保存在数据库中然后将其转换为枚举表示时,我很困惑如何做到这一点。
在 c# 中,我创建了一个这样的枚举:
public enum ArticlePermission
{
CanRead = 1,
CanWrite = 2,
CanDelete = 4,
CanMove = 16
}
然后我可以创建一个权限集,例如:
ArticlePermission johnsArticlePermission = ArticlePermission.CanRead | ArticlePermission.CanMove;
然后我将其保存到数据库中:
(int)johnsArticlePermission
现在我可以从数据库中以整数/长整数形式读取它,并将其转换为:
johnsArticlePermission = (ArticlePermission) dr["articlePermissions"];
我可以检查以下权限:
if(johnsArticlePermission & ArticlePermission.CanRead == ArticlePermission.CanRead)
{
}
如何在 Java 中做到这一点? 据我了解,在java中,您可以将枚举转换为数值,然后将其转换回java枚举。
想法?
【问题讨论】:
-
@DaveNewton 如果我使用枚举集,我无法以相同的方式保存它,因为如果我有 3 个枚举值,则获取名称没有意义?
标签: java permissions bit-manipulation