2012-01-20 16 views
13

मैं ग्रहण पर नौसिखिया हूँ।एक्लिप्स में डीबग कंसोल में जावा ऑब्जेक्ट के वर्तमान मान को कैसे मुद्रित करें?

उद्देश्य-सी में, मैं इस आदेश के साथ कंसोल विंडो में किसी ऑब्जेक्ट का मान प्रिंट कर सकता था।

po nameOfValue 

शायद gdb कमांड। मैं अब ग्रहण का उपयोग कर रहा हूं, ग्रहण में इसके बराबर क्या है?

पीएस मैं जावा ऐप डिबग कर रहा हूं।

उत्तर

20

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

आप अपने स्रोत फलक में बहुत कुछ कर सकते हैं। एक चर को हाइलाइट करें, राइट क्लिक करें और इसका निरीक्षण करें चुनें। आप एक यादृच्छिक अभिव्यक्ति में भी टाइप कर सकते हैं और इसे निष्पादित कर सकते हैं। आप वैरिएबल पर घड़ियों को भी रख सकते हैं (जो मुझे लगता है कि आप उद्देश्य-सी में कर सकते हैं), या अभिव्यक्तियों पर।

एक अभिव्यक्ति दृश्य है जो डिफ़ॉल्ट रूप से प्रदर्शित नहीं होता है (आपके मेनू पर विंडो-> दृश्य-> अभिव्यक्तियों का चयन करें, जबकि डीबग परिप्रेक्ष्य में)। यह आपको मनमानी (वैध) जावा अभिव्यक्ति जोड़ने की अनुमति देता है और उन अभिव्यक्तियों के मानों को तब आपके डीबग सत्र के जीवनकाल में बहुत निफ्टी देखा जाएगा। इस महान उपकरण के अनुस्मारक के लिए @ बाल्ड्रिक का धन्यवाद।

+3

+1 के बीच कोई स्थान है या नहीं। "अभिव्यक्ति" दृश्य (डीबग परिप्रेक्ष्य में)। आप इस दृश्य में जावा कोड डाल सकते हैं जब आप ब्रेकपॉइंट तक पहुंचते हैं, और डीबग में प्रत्येक चरण पर मूल्यांकन किया जाता है। – Baldrick

+0

@B एल्ड्रिक - अभिव्यक्ति दृश्य के बारे में पूरी तरह से भूल गया, जो एक और उत्कृष्ट उपकरण है। – Perception

+2

मुझे कमांड लाइन कंसोल चाहिए क्योंकि मैं अभिव्यक्ति का मूल्यांकन करते समय माउस का उपयोग नहीं करना चाहता क्योंकि आमतौर पर डिबगिंग के लिए अभिव्यक्ति जटिल होती है। और, माउस के साथ छोटे आइकन को लक्षित करना कीबोर्ड का उपयोग करने से बहुत कठिन है। – Eonil

4
System.out.println(nameOfValue); 
+1

मुझे वह विंडो नहीं मिल रही है जिसे मैं इनपुट कर सकता हूं :( – Eonil

+0

आप इसे अभिव्यक्ति विंडो में डाल सकते हैं – MichaelStoner

+0

उपरोक्त कोड "प्रदर्शन" दृश्य में जाएगा क्योंकि यह एक कमांड अभिव्यक्ति नहीं है। –

0

उस ऑब्जेक्ट/कक्षा के लिए ToString ओवरराइड करें। फिर System.out.println (ऑब्जेक्ट उपलब्ध)।

1

विंडो मेनू पर क्लिक करें दृश्य दृश्य प्रकार का चयन करें और उस दृश्य को दिखाएं। इस दृश्य में जब आप डीबगिंग के दौरान रुक गए हैं तो आप System.out.println(objectName); जैसे जावा टाइप कर सकते हैं। जबकि डिबगिंग आप चर विंडो में सभी चरों के मान देख सकते हैं, और अधिक तो उद्देश्य सी

सबसे पहले की तुलना में -

+0

यह नहीं करता है कुछ भी मुद्रित नहीं करें ... – Eonil

+0

इसे कंसोल में प्रिंट करना चाहिए या आपको डिस्प्ले विंडो में एक त्रुटि देनी चाहिए यदि कोड नहीं चलाया जा सका – James

+0

क्या ऑब्जेक्ट स्ट्रिंग को प्रिंट करने का प्रयास कर रहा है, यदि स्ट्रिंग रिक्त हो कुछ पाठ मुद्रित करने के बाद एक और पंक्ति और देखें कि पिछले कंसोल आउटपुट और आपके द्वारा मुद्रित पाठ – James

2

मुझे डीबगिंग के दौरान कंसोल में पूरे ऑब्जेक्ट स्टेटस के किसी भी मुद्रण विकल्प से अवगत नहीं है।

लेकिन आप अपनी ऑब्जेक्ट की toString() विधि को ओवरराइड कर सकते हैं और प्रत्येक फ़ील्ड के मानों के साथ स्ट्रिंग को संयोजित कर सकते हैं या जो भी आप उस ऑब्जेक्ट के लिए प्रिंट करना चाहते हैं। फिर कोड System.out.print(myObject); कोड में कहीं भी कॉल करते समय यह toString() विधि का परिणाम प्रिंट करेगा जिसे आपने ओवरराइड किया है।

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