2010-09-28 19 views
6

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

public class MyLinkedList<T> implements ADTListInterface { 
    ... 
    private class Node<T> { 
     Node<T> head; 
     Node<T> prev; 
     public Node(int max) { 

     ... 

     } 

     public void shift() { 
      ... 
      Node<T> newNode = new Node<T>(this.max); 
      newNode.prev = head.prev; 
      ... 
     } 

    } 

    ... 

} 

संकलन समय त्रुटि निम्न में उत्पन्न होता है:

MyLinkedList.java:111: incompatible types 
    found : MyLinkedList<T>.Node<T> 
    required: MyLinkedList<T>.Node<T> 
newNode.prev = head.prev; 

यह त्रुटि मुझे बहुत उलझन में है। क्या कोई मुझे बता सकता है कि समस्या क्या है?

private class Node<T> { 

<T> अतिरिक्त समस्याओं के कारण होता है:

उत्तर

7

यहाँ शायद समस्या है। चूंकि Node एक आंतरिक वर्ग है, इसलिए इसे अपने सामान्य प्रकार को फिर से घोषित करने की आवश्यकता नहीं है।

आप नीचे दिए गए जैसे Node वर्ग घोषित करना चाहिए:

public class MyLinkedList<T> implements ADTListInterface { 
... 
private class Node { 
    Node head; 
    Node prev; 
    public Node(int max) { 

    ... 
} 
+0

समस्या हल है, धन्यवाद! – objectivesea

+0

@ हर्पे, मदद करने में खुशी हुई। – jjnguy

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