2011-11-22 18 views
13

इस प्रकार मैं, एक जावा वर्ग है कि एक इंटरफेस कमान कहा जाता है, जो तरीकों isValid() और run() शामिल लागू करने है लिख रहा हूँ:जावा ग्रहण @Override त्रुटि

public class DailyEnergy implements Command { 

    @Override 
    public boolean isValid(String command) { 
    return false; 
    } 

    @Override 
    public void run(String command) throws Exception { 
    } 
} 

और यहाँ Command.java फ़ाइल है:

public interface Command { 

    public boolean isValid(String command); 
    public void run(String command) throws Exception; 
} 

इस वर्ग के भीतर, मैं सुपर क्लास तरीकों isValid() और run() को लागू कर रहा हूँ, और मैं @Override टिप्पणी जोड़ने के लिए चाहते हैं, लेकिन ग्रहण एक त्रुटि कह रही है कि "तरीकों overrid चाहिए देता है ई superclass विधियों "।

यहां तक ​​कि जब मैं विधियों को निकालता हूं और ग्रहण के साथ स्वचालित रूप से आयात करता हूं, अगर मैं एनोटेशन जोड़ता हूं, तो मुझे त्रुटि मिलती है। अगर कोई कुछ प्रकाश डाल सकता है कि मैं @Override एनोटेशन का उपयोग क्यों नहीं कर सकता, तो इसकी सराहना की जाएगी।

+0

में इंटरफ़ेस के कार्यान्वयन में @ ओवरराइड की अनुमति नहीं है क्या आप अपने कोड को प्रश्न में कॉपी और पेस्ट कर सकते हैं? –

उत्तर

46

इंटरफेस कार्यान्वयन पर @Override एनोटेशन जावा -6 के बाद से समर्थित है। क्या आप संभवतः जावा -5 पर हैं? ओरेकल has acknowledgedJava 6 docs में एक गड़बड़ है। यह corrected in Java-7 रहा है।

Check compiler setting

+2

नहीं, मैं जावा 6 का उपयोग कर रहा हूं, नहीं 5. – TNC

+5

मैं एक बार फिर से जांच करूंगा कि प्रोजेक्ट और/या डिफ़ॉल्ट ग्रहण जेडीके जेडीके 5 पर सेट नहीं है। –

+0

मेरी भलाई, आप सही हैं, यह समस्या थी। मुझे लगता है कि ग्रहण जेडीके 5 के लिए डिफ़ॉल्ट है, क्योंकि मैंने कभी भी जावा 5 को किसी भी समय स्थापित नहीं किया था .. अजीब, क्योंकि मैंने कसम खाई थी कि मुझे पहले कभी यह समस्या नहीं थी। लेकिन वैसे भी, बहुत बहुत धन्यवाद! – TNC

2

आप JDK5 का उपयोग करते हैं: नीचे दिए गए उदाहरण देखते हैं? जैसा कि मुझे लगता है कि यह जेडीके 5 में एक बग है। JDK5

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