java - ग्रहण में एक परियोजना आयात करने के बाद त्रुटियों को 'सुपरक्लास विधि ओवरराइड करना चाहिए' त्रुटियां




android eclipse (8)

इस समस्या को हल करने के लिए, अपने प्रोजेक्ट गुणों पर जाएं -> जावा कंपाइलर -> 1.6-> लागू करने के लिए कंपाइलर अनुपालन स्तर का चयन करें।

किसी भी समय मुझे अपनी परियोजनाओं को ग्रहण में पुन: आयात करना होगा (यदि मैंने ग्रहण को पुनर्स्थापित किया है, या परियोजनाओं के स्थान को बदल दिया है), लगभग सभी मेरे ओवरराइड विधियों को सही ढंग से स्वरूपित नहीं किया गया है, त्रुटि उत्पन्न करने के कारण The method must override a superclass method

यह उल्लेखनीय हो सकता है कि एंड्रॉइड प्रोजेक्ट्स के साथ यह है - किसी भी कारण से, विधि तर्क मान हमेशा पॉप्युलेट नहीं होते हैं, इसलिए मुझे उन्हें मैन्युअल रूप से पॉप्युलेट करना होगा। उदाहरण के लिए:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

शुरुआत में इस तरह से पॉप्युलेट किया जाएगा:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

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

हाथ से मेरे सभी ओवरराइड तरीकों को मैन्युअल रूप से पुन: बनाने के लिए यह काफी दर्द हो जाता है। अगर कोई यह समझा सकता है कि ऐसा क्यों होता है या इसे कैसे ठीक किया जाए .. मैं बहुत खुश हूं।

हो सकता है कि जिस तरह से मैं विधियों को स्वरूपित कर रहा हूं, जो किसी अन्य विधि के तर्क के अंदर हैं?


ग्रहण जावा 1.5 में डिफॉल्ट हो रहा है और आपके पास इंटरफ़ेस विधियों को कार्यान्वित करने वाले वर्ग हैं (जो जावा 1.6 में @Override ओवरराइड के साथ एनोटेटेड हो सकते हैं, लेकिन जावा 1.5 में केवल सुपरक्लास विधि ओवरराइड करने के तरीकों पर लागू किया जा सकता है)।

अपनी प्रोजेक्ट / आईडीई वरीयताओं पर जाएं और जावा कंपाइलर स्तर 1.6 पर सेट करें और यह भी सुनिश्चित करें कि आप ग्रहण से अपने प्रोग्राम को निष्पादित करने के लिए जेआरई 1.6 का चयन करें।


फिक्स्डिंग को एक सुपर क्लास विधि त्रुटि को ओवरराइड करना मुश्किल नहीं है, आपको जावा स्रोत संस्करण 1.6 में बदलने की जरूरत है क्योंकि जावा 1.6 @ ओवरराइड एनोटेशन से इंटरफ़ेस विधि के साथ उपयोग किया जा सकता है। स्रोत संस्करण को 1.6 में बदलने के लिए नीचे दिए गए चरणों का पालन करें:

  1. प्रोजेक्ट का चयन करें, राइट क्लिक करें, गुण
  2. जावा कंपाइलर का चयन करें और चेक बॉक्स को चेक करें "परियोजना विशिष्ट सेटिंग्स सक्षम करें"
  3. अब 1.6 तक कंपाइलर अनुपालन स्तर बनाओ
  4. परिवर्तन लागू करें

मेरे मामले में दोस्तों ने उपर्युक्त समाधानों में से कोई भी काम नहीं किया।

मुझे प्रोजेक्ट वर्कस्पेस के भीतर फ़ाइलों को हटाना पड़ा:

  • .project
  • .classpath

और फ़ोल्डर:

  • ।सेटिंग्स

तब मैंने उन लोगों को एक समान परियोजना से कॉपी किया जो पहले काम कर रहा था। यह मेरी टूटी हुई परियोजना को ठीक करने में कामयाब रहा।

बेशक पिछले विकल्पों की कोशिश करने से पहले इस विधि का उपयोग न करें!


मेरे मामले में, ऊपर दिए गए समाधानों में से कोई भी काम नहीं करता है। मुझे अपने स्रोत कोड को दूसरे फ़ोल्डर में चेकआउट करना होगा। ग्रहण से फ़ाइल> स्विचस्पेस> अन्य स्विच करें ... और फिर नए वर्कस्पेस पर कोड आयात करें। यह उसके बाद काम करता है।


यदि उपर्युक्त में से कुछ भी मदद नहीं करता है, तो सुनिश्चित करें कि आपके पास उचित " निष्पादन पर्यावरण " चुना गया है, कि "वैकल्पिक जेआरई"।

नीचे पाया जा सकता है:

परियोजना -> पथ बनाएं -> पुस्तकालय

JRE System Library चयन करें और Edit... क्लिक Edit...

यदि "वैकल्पिक जेआरई ..." चुना गया है, तो इसे JavaSE-1.8 (jre1.8.0_60) जैसे "निष्पादन पर्यावरण" में JavaSE-1.8 (jre1.8.0_60) । कोई विचार नहीं क्यों, लेकिन यह इसे हल करेगा।


यह मेरी दूसरी बार इस समस्या का सामना करना पड़ता है। अल्फाज़ेरो की सिफारिश के अनुसार पहली बार यह काम किया। लेकिन दूसरी बार जब मैं 1.6 पर सेट करता हूं तो यह साफ और पुनर्निर्माण के बाद इस त्रुटि को 'कैच' की तरह काम नहीं करता है।

Rollin_s ने कहा - 'स्वचालित रूप से बनाएं' को बंद करने का प्रयास करें -> अभी भी त्रुटि!

इसलिए मैंने पैकेज एक्सप्लोरर से समस्या प्रोजेक्ट (पहले से 1.6 पर सेट किया) हटा दिया और इसे फिर से आयात किया -> यह पुनर्निर्माण शुरू करता है और इस बार कोई त्रुटि नहीं

उम्मीद है कि यह किसी की मदद करेगा


विंडोज़-> वरीयताओं -> जावा -> कंपाइलर पर जाएं -> 1.6 तक कंपाइलर अनुपालन स्तर का चयन करें (आप जो संस्करण चाहते हैं) -> लागू करें-> ठीक है। अब इसका काम





superclass