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

  • BrandonHarrisWalker

    BrandonHarri

    27 Kasım 2006
  • Fullscreen

    Fullscreen

    23 Mart 2006
  • infodirt

    infodirt

    11 Mart 2009