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

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • EminemMusic

    EminemMusic

    9 ŞUBAT 2007
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009