Bu C# izin modülünü java'ya bağlamak istiyorum, ancak sayısal değeri veritabanına kaydedemediğim zaman bunu nasıl yapabilirim? numaralandırma gösterimi.Bir bit maskesi oluşturma ve izinleri denetleme ile Java enum karmaşası
C#, ben böyle bir enum oluşturun:
public enum ArticlePermission
{
CanRead = 1,
CanWrite = 2,
CanDelete = 4,
CanMove = 16
}
Sonra bir izni oluşturabilir gibi ayarlayın:
ArticlePermission johnsArticlePermission = ArticlePermission.CanRead | ArticlePermission.CanMove;
Sonra kullanarak veritabanına bu kaydedin:
(int)johnsArticlePermission
Şimdi veritabanından bir tam sayı/uzun olarak okuyabilir ve onu şöyle yayınlayabilirim:
johnsArticlePermission = (ArticlePermission) dr["articlePermissions"];
Ve ben izinlerini kontrol edebilirsiniz:
if(johnsArticlePermission & ArticlePermission.CanRead == ArticlePermission.CanRead)
{
}
nasıl java yapabilirsiniz? Anladığım kadarıyla, java'da, numaralandırmayı sayısal bir değere dönüştürebilir ve daha sonra bir java numarasına dönüştürebilirsiniz.
Fikirler?
http://stackoverflow.com/questions/1067352/can-set-enum-start-value-in-java –
[Ve DB'leri doğrudan depolamak için doğrudan adresleme yapan bu] (http://stackoverflow.com/sorular/229856/yolları-to-save-çeteleler-in-veritabanı). –
@DaveNewton, bir enumset kullanırsam, OR'd 3 enum değerleri no'm varsa, ismin anlam kazanmayacağından aynı şekilde kaydedemiyorum. – Blankman