2010-05-31 45 views
5

सार्वजनिक कक्षा सी 1 कार्यान्वयन Iterable { निजी लिंक्डलिस्ट सूची लागू करना; सार्वजनिक स्थैतिक वर्ग एनसी 1 { ... } ... एक्स सार्वजनिक Iterator iterator() { वापसी सूची.इटरेटर(); } }जावा Iterable <E> इंटरफेस

लेकिन (एक्स-एड लाइन पर) ग्रहण whines:

- The return type is incompatible with Iterable<NC1>.iterator() 
- implements java.lang.Iterable<NC1>.iterator 

मुझे समझ नहीं आता जहां गलती है। क्या कोई मदद कर सकता है?

+0

उत्तर –

उत्तर

9

आपको NC1 से C1.NC1 बदलने की आवश्यकता है। निम्नलिखित compiles:

import java.util.*; 

public class C1 implements Iterable<C1.NC1> { 
    private LinkedList<NC1> list; 
    public static class NC1 { 
    } 

    public Iterator<C1.NC1> iterator() { 
     return list.iterator(); 
    } 
} 

वैकल्पिक रूप से, आप import static yourpackage.C1.NC1 सकता है।

+0

को स्वीकार करना याद रखें जो सही है, धन्यवाद। – Metz

2

इस कोड को ठीक संकलित:

public class C1 implements Iterable<NC1> { 
    public static class NC1 { 
    } 

    private LinkedList<NC1> list; 

    public Iterator<NC1> iterator() { 
     return this.list.iterator(); 
    } 
} 

, इसलिए एक हिस्सा आप

संपादित लोप में कोई त्रुटि होना चाहिए: अन्य जवाब देखने के बाद

:

हाँ , मेरे पास ऑटो-आयात स्विच हैं, इसलिए आपको इस लाइन की आवश्यकता है:

import com.yourpackage.C1.NC1; 
+0

जावा/ग्रहण का कौन सा संस्करण? – aioobe

+0

ग्रहण अब एओबोब के समाधान के साथ नहीं है। – Metz

+0

कक्षा आयात करके इसे हल करना भी एक अच्छा जवाब है! –

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