我想將此c#權限模塊移植到java,但我很困惑,我無法在數據庫中保存數值然後將其轉換爲枚舉表示。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枚舉。
想法?
http://stackoverflow.com/questions/1067352/can-set-enum-start-value-in-java – 2012-01-28 20:17:23
[而這一點,從而直接尋址存儲枚舉到DB(http://stackoverflow.com /問題/ 229856 /辦法對保存-枚舉型數據庫)。 – 2012-01-28 20:31:12
@DaveNewton如果我使用enumset,我不能以同樣的方式保存它,因爲如果我具有OR'd 3枚舉值no,那麼獲取名稱將沒有意義? – Blankman 2012-01-29 20:04:47