Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Java ve serialization


Suark

Öne çıkan mesajlar

Aslında amaç classları versiyonlamak. Sen classında özel olarak bi static serialVersionUID tanımlamadığın sürece runtime'da classın implemente ettiği interface'lere, extrnd ettiği classlara ve property'lerine bakılarak bi version id oluşturulur. Bu classtan türetilmiş bi veriyi binary olarak serialize ettiğinde bu versiyon da veriye işlenir. Daha sonradan classta birtakım değişiklikler yapıp (serial version id'yi değiştirip) bu önceden kaydedilmiş veriyi deserialize etmeye çalıştığında versiyonlar uyuşmadığı için başarısız olursun. Binary serialization artık pek kullanılmıyo ama veritabanında BLOB tutuyosan banko sıkıntı yaşarsın.

Özel olarak bi serialVersionUID tanımladığın takdirde otomatik olarak hesaplanmasına gerek kalmayacağı için classın ne zaman serialize edilmiş olursa olsun deserialize edebilirsin.

Özellikle model ve entitylerde mutlaka tanımlanıyo ki sakata getirecek bi surum olmasın.
Link to comment
Sosyal ağlarda paylaş

hmm o zaman lazım,yani classları update edeceğim zaman çakışma olmaması için mi kullanıyoruz bunu?

peki, ben programı update ederken, classların üzerine ( var olanların ) direk overwrite etmeyi planlıodum.

Ek olarak, kullanımıyla ilgili sorayım bide. direk idenin bana önerdiği default serial.. id yi kullandım, var mı bi tuto bunla ilgili?

özellikle swing componentlerde var bu meret.
şöyle bişi ekletiyor ide

"private static final long serialVersionUID = 1L;"

1L benim versiyonum mu?
her update te bunu değiştirecek miyim?
havada kaldı hala bende bu
Link to comment
Sosyal ağlarda paylaş

şöyle güzel bi site buldum

http://www.mkyong.com/java-best-practices/understand-the-serialversionuid/

diyor ki;
1- Client/server arasında ki makinalar farkından doğabilecek default serial olayından ötürü kullanmanız lazım
2- belli bi DB yi kullanan farklı işletim sistemli programlar arasında oluşabilecek çakışma ( benim sınıf bu ) dan ötürü kullanmanız lazım

Şimdi ben hepsine, 1L desem olur mu?
Yoksa, programın içinde ki her serial. isteyen class'a farklı id mi vermem lazım?

Bide, bunu ne zaman değiştirmem lazım onu tam anlayamadım
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...