SerialVersionUID (3567653491060394677L) oluşturmak yerine serialVersionUID (1L) kullandığınızda bir şey söylüyorsunuz.
Bu sınıfın uyumsuz bir serileştirilmiş sürümüne sahip 1'in sürüm numarasına sahip bu sınıfa dokunmayacak hiçbir sistemin% 100 olduğundan eminsiniz.
Serileştirilmiş sürüm geçmişinin bilinmemesi için herhangi bir mazeret düşünürseniz, bunu güvenle söylemek zor olabilir. Yaşamı boyunca başarılı bir sınıf birçok kişi tarafından sürdürülecek, birçok projede yaşayacak ve birçok sistemde ikamet edecek.
Bunun üzerinde acı çekebilirsiniz. Ya da kaybetmeyi umarak piyango oynayabilirsiniz. Sürümü oluşturursanız, bazı şeylerin yanlış gitme şansınız vardır. Eğer "Hey henüz hiç kimse 1 kullanmadım" varsa, şansınız çok küçüktür. Kesinlikle hepimiz 0 ve 1'in onları vurma olasılığınızın yüksek olduğunu düşündüğümüz için düşünüyoruz.
-
SerialVersionUID (1L) kullanmak yerine serialVersionUID (3567653491060394677L) oluşturduğunuzda bir şey söylüyorsunuz.
İnsanların bu sınıfın geçmişi boyunca manuel olarak başka sürüm numaraları oluşturduğunu veya oluşturduğunu ve umursamadığınızdan dolayı Longs büyük sayıları korkutuyor.
Her iki durumda da, sınıfın bulunduğu ya da var olacağı tüm evrende serileştirilirken kullanılan sürüm numaralarının geçmişini mükemmel bir şekilde bilmiyorsanız, bir şans elde edersiniz. 100'ün 1'in AOK olduğundan emin olmak için zamanınız varsa, gidin. Bu çok işe yarıyorsa, devam edin ve körü körüne sayı oluşturun. Piyangoyu kazanma ihtimaliniz yanlıştır. Varsa, bana bildirin, size bir bira alacağım.
Piyango oynamanın tüm bu konuşmalarıyla size serialVersionUID'nin rastgele oluşturulduğu izlenimini vermiş olabilirim. Aslında, sayı aralığı, uzun olan her olası değere eşit olarak dağıtıldığı sürece. Ancak, aslında şu şekilde yapılır:
http://docs.oracle.com/javase/6/docs/platform/serialization/spec/class.html#4100
Bununla elde ettiğiniz tek fark, rastgele bir kaynağa ihtiyacınız olmamasıdır. Sonucu değiştirmek için sınıftaki değişiklikleri kullanıyorsunuz. Ancak güvercin deliği prensibine göre hala yanlış gitme ve çarpışma olasılığı vardır. Bu inanılmaz derecede olası değil. Benden bir bira almak iyi şanslar.
Bununla birlikte, sınıf sadece bir sistemde ve bir kod tabanında yaşayacak olsa bile, sayıyı elle arttırmanın size sıfır çarpışma şansı verdiğini düşünmek, sadece insanları anlamadığınız anlamına gelir. :)