2010-09-28 5 views
6

Bir CS sınıfı için profesörümün oluşturduğu bağlantılı bir liste arayüzünün bağlantılı bir listesini gerçekleştiriyorum. Ödev, liste için jenerik kullanmamızı gerektiriyor. Ne oluşturduğum, bence oldukça standart. hata aşağıdaki derleme zamandaJava Generics 'Uyumsuz Tür' Derleme Zamanı Hatası

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; 
      ... 
     } 

    } 

    ... 

} 

oluşturulur:

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

Bu hata beni çok karışık vardır. Sorunun ne olduğunu bana açıklayan var mı?

private class Node<T> { 

<T> ekstra sorun yaratıyor: İşte

cevap

7

muhtemelen sorundur. Node bir iç sınıf olduğundan, genel türünü tekrar bildirmesi gerekmez.

aşağıdaki gibi Node sınıfı beyan etmelidir:

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

    ... 
} 
+0

Sorun çözüldü, teşekkürler! – objectivesea

+0

@Hurpe, yardım etmekten memnun. – jjnguy