[英]Compare bit sets efficiently
我希望將權限存儲在一個位集中,以便在Java中有效地比較它們。 1表示授予許可,0表示拒絕。 如果執行授權,則將所需權限與權限集進行比較。
我的想法是使用AND並將結果與請求的權限進行比較。
例:
0010 1101 Granted Permissions
AND 0000 0101 Requested Permissions
= 0000 0101 Result
if (Result == Requested Permissions)
allow
else
deny
這可以更有效或更簡單嗎?
如果您使用的是Java 5或更高版本,我建議使用Enum
(s)和EnumSet
。 它更容易處理,AFAIK表現同樣出色。
您的方法非常好,並將按預期工作。 當然,你可以用幾種更復雜的方式做到這一點,但是如果上下文適合你的情況,我認為使用位操作運算符並沒有錯。 在所有這些運算符都是Java核心語言的一部分之后,並沒有標記為@deprecated或@evil 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.