دور serialVersionUID:
من أجل الحفاظ على توافق الإصدار أثناء التسلسل، لا يزال إلغاء التسلسل يحافظ على تفرد الكائن عند ترقية الإصدار.
هناك طريقتان للتوليد:
أحدهما هو 1L الافتراضي، على سبيل المثال: serialVersionUID الطويل النهائي الثابت الخاص = 1L؛
الأول هو إنشاء حقل تجزئة 64 بت بناءً على اسم الفئة واسم الواجهة وطريقة العضو وسمته وما إلى ذلك، مثل:
serialVersionUID النهائي الطويل الخاص الثابت = xxxxL;
عندما يقوم فصلك بتنفيذ الواجهة القابلة للتسلسل، إذا لم يتم تعريف serialVersionUID، فسيوفر Eclipse هذا
تخبرك الوظيفة السريعة بتعريفها. في Eclipse، انقر فوق أيقونة التحذير في الفصل، وسيقوم Eclipse بذلك
يتم توفير طريقتين لتوليد تلقائيا. إذا كنت لا تريد تعريفه، يمكنك أيضًا ذلك
يمكنك إيقاف تشغيله وضبطه على النحو التالي:
نافذة ==> التفضيلات ==> Java ==> المترجم ==> خطأ/تحذيرات ==>
مشاكل البرمجة المحتملة
ما عليك سوى تغيير التحذير الخاص بالفئة Serializable دون تجاهل serialVersionUID.
إذا كنت لا تفكر في مشكلات التوافق، فقم بإيقاف تشغيلها، ولكن من الجيد أن تكون لديك هذه الوظيفة طالما أن أي فئة تطبق الواجهة القابلة للتسلسل، فسوف يمنحك Eclipse رسالة تحذير إذا لم تتم إضافة serialVersionUID هذا الفئة القابلة للتسلسل متوافقة مع الإصدارات السابقة.
إذا تم إجراء تسلسل لفصلك وحفظه على القرص الثابت، ولكنك قمت لاحقًا بتغيير حقل الفصل (إضافة أو تقليل أو إعادة تسمية)، فسيظهر استثناء عند إلغاء التسلسل، مما سيؤدي إلى حدوث مشكلات عدم التوافق.
ولكن عندما يكون serialVersionUID هو نفسه، فسيتم إلغاء تسلسل الحقول المختلفة باستخدام القيمة الافتراضية للنوع، مما يمكن أن يتجنب مشاكل عدم التوافق.