SORU
12 Kasım 2008, ÇARŞAMBA


Bir serialVersionUİD nedir ve neden kullanmalıyım?

serialVersionUID bir eksik olduğunda sorunlar uyarıları tutulması.

Seri hale getirilebilir bir sınıf Foo statik bir son bildirmiyor tür serialVersionUİD alan uzun

serialVersionUID nedir ve neden önemlidir? serialVersionUID bir soruna neden olacak bir örnek gösterin lütfen.

CEVAP
12 Kasım 2008, ÇARŞAMBA


java.io.Serializable doktorlar muhtemelen en iyi açıklama:

Seri hale getirme zamanı associates her seri hale getirilebilir bir sınıf sürümü sayı, bir serialVersionUİD aradı, hangi seri kaldırma sırasında kullanılır göndereni doğrulamak için alıcı yüklü seri bir nesnenin bunun için sınıflar nesne saygı ile uyumlu seri hale getirme. Eğer alıcısı varsa bu nesne için bir sınıf dolu farklı bir serialVersionUİD daha ilgili gönderenin sınıf, sonra kaldırması için bir neden olur InvalidClassException. Bir seri hale getirilebilir sınıf kendi bildirebilirsiniz tarafından serialVersionUİD açıkça alanı ilan adlı "serialVersionUID" bu olmalı static, final, ve 7* *türü:

ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;

Eğer seri hale getirilebilir bir sınıf açıkça değil ilan bir serialVersionUİD, seri hale getirme zamanı hesaplar varsayılan değer serialVersionUİD bu sınıfın çeşitli yönleri dayalı tarif olarak sınıf, Java(TM) Seri hale getirme Nesne Belirtimi. Ancak, öyleşiddetle tavsiyetüm seri hale getirilebilir sınıfları açıkça beyan beri serialVersionUİD değerleri varsayılan hesaplama serialVersionUİD sınıf detayları konusunda son derece hassas olan bu derleyici bağlı olarak farklılık gösterebilir uygulamaları, ve böylece neden olabilir beklenmeyen InvalidClassExceptions seri kaldırma sırasında. Bu nedenle, garanti tutarlı serialVersionUİD değeri üzerinden farklı java derleyici uygulamaları, seri hale getirilebilir bir sınıf gerektiğini açık bir ilan serialVersionUİD değer. Aynı zamanda açık şiddetle tavsiye serialVersionUİD tanımlamalar kullanımı mümkünse bu yana özel değiştirici bu tür açıklamalar sadece Uygula hemen ilan sınıf--serialVersionUİD alanlar değildir devralınan üyeleri olarak yararlı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EEVblog

    EEVblog

    4 NİSAN 2009
  • Elly

    Elly

    3 EKİM 2005
  • LiquidMusick

    LiquidMusick

    23 Aralık 2010