2013-02-13 28 views
5

उत्पन्न नहीं करते हैं जब मैं ग्रहण में किसी फ़ील्ड पर त्वरित फ़िक्स करता हूं तो मैं फ़ील्ड के लिए गेटर और सेटटर उत्पन्न कर सकता हूं। यह फ़ील्ड प्राइवेट अंडर को बाद में गेटटर और सेटर का उपयोग करने के लिए सभी स्रोत फ़ाइलों में इस फ़ील्ड के लिए सभी एक्सेस को बदल देता है। यह एक ही क्षेत्र के लिए मामला है।ग्रहण उत्पन्नकर्ता और सेटर्स

हालांकि अगर मैं contextmenu> स्रोत> गेटर्स और सेटर्स जेनरेट करता हूं ... (जब आप सभी क्षेत्रों को प्रभावित करना चाहते हैं तो इसका उपयोग करने का विकल्प) यह पहले से बदलाव नहीं करता है और स्रोत कोड में फ़ील्ड तक पहुंच के रूप में छोड़ दिया है।

क्या मैं कुछ देख रहा हूं?

उत्तर

6

त्वरित मेनू इस मेनू पर नहीं जा रहा है। मेनू जो त्वरित फिक्स कॉल Context Menu -> Refactor -> Encapsulate Field

+0

CTRL-1 (मैंने सोचा था कि क्विकफ़िक्स शॉर्टकट था) "गेटटर और सेटर उत्पन्न करता है" प्रदान करता है और यह आपके द्वारा वर्णित विंडो (encapsulate) खोलता है। यह वह विशेषता है जिसे मैं अपनी पोस्ट के पहले भाग में वर्णित करता हूं। यदि मैं गलत हूं तो मुझे सही करों। मेरी समस्या यह है कि स्रोत> रिएक्टर रेफैक्टर> encapsulate फ़ील्ड के विपरीत, किसी भी फ़ील्ड को समाहित नहीं करता है। मैं रेफैक्टर कर सकता हूं> मेरे सभी क्षेत्रों के लिए क्षेत्र को एन्सेप्लेट करें लेकिन मैं थोड़ी आलसी हूं .. – cdbeelala89

+0

जब आप Ctrl-1 का उपयोग करते हैं और 'गेटटर और सेटर जेनरेट करें' पर जाते हैं तो यह आपको 'एन्केप्लेट फ़ील्ड' स्क्रीन देगा। नाम उलझन में है। यदि आप 'जेनरेट गेटर्स और सेटर' दस्तावेज देखते हैं तो आप इसे क्लीली देखेंगे: यह कहता है कि 'गेटटर और सेटर्स बनाने के लिए' एनकैप्लेटुलेट फील्ड 'रीफैक्टरिंग शुरू होता है। उन्हें शायद इसे बेहतर नाम देना चाहिए था। –

+2

बैच में ऐसा करने का कोई तरीका है? जैसे। 20 फ़ील्ड का चयन करें और कहें: उन सभी को encapsulate? –