2010-08-12 17 views
23

जेपीए में एक इकाई वर्ग अंतिम क्यों नहीं हो सकता है या अंतिम विधियां क्यों हो सकती हैं? here से हवाला देते हुए -जेपीए में इकाई वर्ग क्यों अंतिम नहीं हो सकता है?

एक इकाई वर्ग इन आवश्यकताओं का पालन करना होगा:

...

वर्ग final घोषित नहीं किया जाना चाहिए। कोई विधि या लगातार उदाहरण चर घोषित नहीं किया जाना चाहिए final

कारण क्या है? क्या जेपीए इकाई वर्गों को वर्गीकृत कर रहा है और विधियों को फिर से परिभाषित कर रहा है?

+0

इसी तरह का प्रश्न [जावा के लिए दृढ़ता प्रदाता जो अंतिम फ़ील्ड का समर्थन करता है] (http://stackoverflow.com/questions/2455906/persistence-provider-for-java-that-supports-final-fields)। –

उत्तर

27

परिभाषा के अनुसार, एक इकाई एक वर्ग है जिसे डेटाबेस में रखा जा सकता है, इसलिए अंतिम फ़ील्ड होने से किसी ऐसे संदर्भ के संदर्भ में कोई अर्थ नहीं आएगा जो आपके डेटाबेस में रिकॉर्ड बन जाएगा। किसी भी अंतिम श्रेणी की आवश्यकता नहीं है और अंतिम तरीकों से ऐसा नहीं करना है जिसमें जेपीए कार्यान्वयन वास्तव में आपकी संस्था वर्गों के मौजूदा उदाहरणों से निपटते हैं।

किसी इकाई ऑब्जेक्ट में परिवर्तन कब हुआ है, यह पता लगाने के लिए कि आपके वर्ग में गतिशील रूप से बाइट कोड को गतिशील रूप से अपने वर्ग को उपclass करने के लिए कार्यान्वयन और/या बाइट कोड को गतिशील रूप से जोड़ना आम है। यदि आपकी कक्षा को अंतिम घोषित किया गया है, तो यह संभव नहीं होगा।

निश्चित रूप से उन लोगों की तुलना में बहुत अधिक कारण हैं, यहां एक article है जो कवर के पीछे सामान्य काम में ओआरएम के बारे में अधिक जानकारी देता है, जो आपको जेपीए इकाइयों के लिए अन्य आवश्यकताओं को बेहतर ढंग से समझने में मदद कर सकता है।

+0

धन्यवाद! मैं अंतिम क्षेत्रों के बारे में जानता था, लेकिन मुझे अंतिम तरीकों/कक्षाओं के बारे में निश्चित नहीं था। –

+0

आपका स्वागत है;) –

+4

ध्यान दें कि * लोडिंग * डेटाबेस से अपरिवर्तनीय वर्ग पूरी तरह से समझ में आता है। –

संबंधित मुद्दे