SORU
28 EKİM 2009, ÇARŞAMBA


eşit ve Hazırda hashcode

Nasıl model sınıfının equals ve hashcode Hazırda uygulanmalıdır? Ne ortak tuzaklar? Varsayılan uygulama çoğu için yeterince iyi mi? Herhangi bir anlamda iş anahtarları var mı acaba?

Çok zor değil tembel getirilirken, proxy, vb kimliği oluşturma dikkate alındığında, her durumda işe almak gibi geliyor bana.

CEVAP
28 EKİM 2009, ÇARŞAMBA


Hazırda Beklet documentationequals() / hashCode() geçersiz kılmak için ne zaman güzel ve uzun bir açıklama vardır

Olayın özü eğer varlık Set bir parçası olacak eğer sadece bu konuda endişelenmenize gerek yok ya da onun örneğini bağlama / ayırma olacaksın. İkinci ortak. Eski genellikle en iyi yoluyla ele:

  1. İş anahtarı - örneğin nesne boyunca değişmeyecek özellikleri benzersiz bir kombinasyonu (veya, en azından, oturum) equals() / hashCode() ömür boyu dayandırarak.
  2. Yukarıda imkansız ise, temel 5* / hashCode() *EĞER ayarlanmışsa, birincil anahtar ve / System.identityHashCode() aksi halde kimlik nesne.önemlibölüm burada ihtiyaç vardıryenidenSet sonra yeni işletme eklendi ve devam etti; aksi takdirde Mayıs sonu ile garip davranış (sonuçta kaynaklanan hataları ve / veya veri bozulması) çünkü senin varlık olabilir ayrılan bir kova değil eşleşen geçerli hashCode().

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • Fuse

    Fuse

    21 Kasım 2005
  • Helen Bradley

    Helen Bradle

    4 Mart 2008