2011-01-10 12 views
6

यदि मेरे पास एक्लिप्स में जावा प्रोजेक्ट है, तो मैं एक विधि नाम पर राइट-क्लिक कर सकता हूं और "ओपन कॉल पदानुक्रम" पर राइट-क्लिक कर सकता हूं। मान लीजिए मेरे पास दो इंटरफेस हैं, ए और बी, दोनों एक विधि x() निर्दिष्ट करते हैं। क्या मेरे लिए ग्रहण "ओपन कॉल पदानुक्रम" का उपयोग अधिक बुद्धिमान तरीके से करना संभव है ताकि बी से उनको न दिखाए जाने पर ए से केवल एक्स() को कॉल दिखाएं?अधिक बुद्धिमान ग्रहण "ओपन कॉल पदानुक्रम"?

उत्तर

6

ग्रहण पहले से ही ऐसा करना चाहिए। यदि आप इसका परीक्षण करना चाहते हैं, तो अपने इंटरफ़ेस पर जाएं, x() विधि का चयन करें और उस पर 'ओपन कॉल पदानुक्रम' चलाएं। अपने x() इंटरफ़ेस बी में विधि के लिए ऐसा ही करें। आपको अलग-अलग कोड स्थान प्राप्त करना चाहिए, जब तक कि आपके पास ऐसी कक्षा न हो जो दोनों लागू करता है, जिसे आपको कभी नहीं करना चाहिए। ऐसा करने से कोई संकलन या निष्पादन तोड़ नहीं जाएगा, आप केवल उसी पद्धति हस्ताक्षर की घोषणा करेंगे।

+0

अब मैं खुद को भ्रमित करना शुरू कर रहा हूं। जब मैंने वास्तव में डमी उदाहरण की कोशिश की तो यह आपके जैसा समझाता है, लेकिन अधिक जटिल पदानुक्रमों के साथ मेरा असली उदाहरण * प्रकट होता है जो मैंने वर्णित घटना से पीड़ित है। –

3

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

मैं अकसर विपरीत तरीके से जाने के लिए ग्रहण पर भरोसा करता हूं: मैं एक विधि आमंत्रण का चयन करता हूं और ओपन घोषणा के लिए F3 दबाता हूं। लेकिन मुझे नहीं लगता कि ग्रहण कॉलिंग संदर्भ से घोषणा से, जिस दिशा में आप चाहते हैं उसे पार करने में सक्षम है।

2

यह खोज परिणामों से "संभावित मिलान" को हटाने में मदद कर सकता है। इस प्रयास करें:

Preferences -> General -> Search

और जाँच "संभावित मैचों पर ध्यान न दें"।

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