Chcę przenieść ten moduł uprawnień C# do java, ale jestem zdezorientowany, jak mogę to zrobić, gdy nie mogę zapisać wartości liczbowej w bazie danych, a następnie przesłać ją do reprezentacja wyliczeniowa.Java enum zamieszanie z tworzeniem maski bitowej i sprawdzanie uprawnień
w C#, tworzę enum tak:
public enum ArticlePermission
{
CanRead = 1,
CanWrite = 2,
CanDelete = 4,
CanMove = 16
}
Następnie można utworzyć uprawnienia ustawione tak:
ArticlePermission johnsArticlePermission = ArticlePermission.CanRead | ArticlePermission.CanMove;
I następnie zapisać to do bazy danych:
(int)johnsArticlePermission
Teraz mogę odczytać go z bazy danych jako liczbę całkowitą/długą i obsadzić go w następujący sposób:
johnsArticlePermission = (ArticlePermission) dr["articlePermissions"];
I mogę sprawdzić uprawnienia takie jak:
if(johnsArticlePermission & ArticlePermission.CanRead == ArticlePermission.CanRead)
{
}
Jak mogę to zrobić w java? Z tego co rozumiem, w języku java można przekonwertować wyliczenie na wartość liczbową, a następnie przekonwertować z powrotem na wyliczenie java.
Pomysły?
http://stackoverflow.com/questions/1067352/can-set-enum-start-value-in-java –
[A to, które bezpośrednio odnosi się do przechowywania enums do DB] (http://stackoverflow.com/questions/229856/ways-to-save-enums-in-database). –
@DaveNewton, jeśli używam enumsetu, nie mogę zapisać go w ten sam sposób, ponieważ otrzymanie nazwy nie ma sensu, jeśli mam OR'd 3 wartości wyliczeniowe nie? – Blankman