يدرس هذه المقالة بشكل أساسي المحتوى ذي الصلة للتعداد بدلاً من مجال بت في Java ، كما هو مفصل أدناه.
قراءة ملاحظات "الإصدار الصيني Java الفعال 2"
يتيح تدوين المجال بت أن يتم تنفيذ عمليات بت بشكل فعال مثل الاتحاد والتقاطع. لكن مجال البت لديه كل عيوب إلقاء الضوء دائمًا على التعداد ، وأكثر من ذلك. عندما تتم طباعة Bitfield في شكل رقمي ، من الصعب للغاية ترجمة ثابت التعداد البسيط. حتى لا توجد طريقة سهلة لاجتياز جميع العناصر التي يمثلها Bitfield.
// bit field reuperation ثابت - اختبار فئة obsoletepublic {public static byte byte style_bold = 1 << 0 ؛ // 1 static byte byte style_italic = 1 << 1 ؛ // 2 public static byte byte style_underline = 1 << 2 ؛ // 4 public static byte byte style_strikethrough = 1 << 3 ؛ // 6 // المعلمة هي بتات أو من الصفر أو أكثر من style_ ثوابت فرادية عامة تطبيقات (أنماط int) {...}}توفر حزمة Java.Util فئة التعداد لتمثيل مجموعات متعددة من القيم المتعددة المستخرجة بشكل فعال من نوع التعداد واحد. تنفذ هذه الفئة الواجهة المحددة ، مما يوفر وظائف غنية ، وسلامة النوع ، وقابلية التشغيل البيني التي يمكن الحصول عليها من أي تطبيق مجموعة أخرى. ومع ذلك ، في التنفيذ الداخلي المحدد ، يتم تمثيل كل محتوى التعداد كناقل قليلا. إذا كان نوع التعداد الأساسي يحتوي على 64 عنصرًا أو أقل - معظمهم. يتم تمثيل التعداد بأكمله بطول واحد ، وبالتالي فإن أدائها أفضل من أداء المجال العلوي. يتم تنفيذ معالجة الدُفعات ، مثل عمليات الإزالة والاحتفاظ بها ، باستخدام خوارزميات بت. تماما مثل استبدال مجالات بت يدوي. ولكن يمكنك تجنب الأخطاء المعرضة للعمليات اليدوية والرمز الأقل أناقة ، لأن التعداد تقوم بهذه المهمة الصعبة بالنسبة لك. `
// enumset - استبدال حديث لنص فئة الحقول العامة {نمط التعداد العام {Bold ، Mitalic ، Thankline ، strikethrough} ؛ // يمكن تمرير أي مجموعة ، ولكن من الواضح أن Enumset هو أفضل تطبيقات proildstyles (set <style> أنماط) {system.out.println (أنماط) ؛ } test public void () {applicStyles (enumset.of (style.bold ، style.italic)) ؛ }} تنفيذ test() والإخراج [BOLD, ITALIC] .
تجمع فئة التعداد بين بساطة وأداء مجالات البت وجميع مزايا أنواع التعداد ، لذلك لا يوجد سبب لاستخدام تدوين مجال بت مرة أخرى. ما لم يكن الحقل الذي يشكل بروتوكول اتصال.
ولكن في الواقع ، لدى Enumset أيضًا عيبًا - لا يمكنه إنشاء التعداد غير القابل للتغيير ، ولكن يمكننا تغليف التعداد مع المجموعات.
اختبار void العام () {enumset <style> أنماط = enumset.of (style.bold ، style.italic) ؛ تعيين <style> unmodiviBlestyle = collections.unmodifiableset (الأنماط) ؛ unmodifibleestyle.add (style.underline) ؛}وبهذه الطريقة ، إذا قمت بإضافة عناصر إلى unmodifiableset ، فستقوم بالإبلاغ عن java.lang.unsupportedoperationexception
لخص
ما سبق هو كل التفسير التفصيلي لل enumset بدلاً من رمز Bitfield في Java. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!