2009-01-02 8 views
15

क्या जावा में एक गणना घोषित करने का कोई तरीका है जिसका मूल्य एक साथ उपयोग किया जा सकता है? उदाहरण के लिए:जावा गणनाएं विलय हो सकती हैं (जैसे सी # में बिटवाइज)?

enum FileAccess { Read, Write, ReadWrite } 

यह Read | Write (या कुछ भी है कि एक ही परिणाम प्राप्त होते हैं) के रूप में ReadWrite परिभाषित करने के लिए संभव है?

उत्तर

23

आप EnumSet का उपयोग करें:।

EnumSet<FileAccess> readWrite = EnumSet.of(FileAccess.Read, FileAccess.Write); 

यह वास्तव में कुछ हद तक सी #/नेट तरीका की तुलना में अधिक सुंदर है, IMO - कुछ और से अलग, आप आसानी से एक सेट और एक ही मूल्य के बीच अंतर कर सकते हैं।

+0

आप व्याख्या कर सकते हैं कि आप इस EnumSet प्रयोग करेंगे पढ़ने का उत्पादन करने/निरंतर लिखने? –

+0

बिल्कुल जिस तरह से मैंने दिखाया है - बस इसे अंतिम चर बनाओ। EnumSet अपरिवर्तनीय है। –

+4

लेकिन यह आपको एक सेट, न कि एनम, या वास्तव में एक पूर्णांक देता है जिसे आप किसी डेटाबेस में संग्रहीत कर सकते हैं (जैसे Enum.ordinal())। –

4

जो आप इस कुशलता से करने के लिए अनुमति देता देखें EnumSet:

EnumSet<FileAccess> set = EnumSet.of(READ, WRITE); 
संबंधित मुद्दे