सरल डेटा के लिए equals()
और hashCode()
लागू करने के लिए पीओजेओ मेरे कोड को अव्यवस्थित कर रहा है और बनाए रखना कठिन है।जावा: स्वचालित बराबर() और हैशकोड()
लाइब्रेरी स्वचालित रूप से इसे कैसे प्रबंधित कर रहे हैं?
मैं प्रदर्शन कारणों से एओपी दृष्टिकोण पर बाइटकोड वाद्ययंत्र पसंद करता हूं।
अद्यतन:) बराबरी को लागू करने की आवश्यकता है (और hashCode() पर चर्चा की गई है की विषय, यहाँ मेरी बात है:
नहीं यह बेहतर यह कम से कम के बजाय प्रयास में खुदाई के साथ अग्रिम सही किया है है कोड, एचसी/ईक जोड़ने जब यह आता है?
कोई लाइब्रेरी आपके लिए 'बराबर' का ख्याल रख सकती है - केवल आप जानते हैं कि दो ऑब्जेक्ट्स बराबर क्या बनाता है। आप किस आईडीई का उपयोग कर रहे हैं जो आपके लिए 'हैशकोड' उत्पन्न नहीं करता है? और आपको 'बराबर' और 'हैशकोड' पर इतना रखरखाव क्यों करना है? – Paul
मैं समझता हूं कि जावा समुदाय में मूल रूप से प्रत्येक POJO के लिए इन तरीकों को लागू करना आम है, लेकिन मुझे यह पूछना है: क्या आप वास्तव में अपने सभी POJO प्रकारों का उपयोग हैश टेबल में कुंजी के रूप में कर रहे हैं? क्या आप उन्हें समानता के लिए तुलना कर रहे हैं? यदि नहीं, तो परेशान क्यों? –
@ पॉल - नेटबीन, और यह उत्पन्न करता है; केवल, मुझे हर बार फिर से उत्पन्न करना होगा, और यह कोड की 10 लाइनों को भी बनाता है। इसके अलावा, lib उत्पन्न करते समय प्रतिबिंब का उपयोग कर सकता है, तो यह बराबर संभाल क्यों नहीं सकता? –