Found: T Required: T ???



  • Hoi,
    Ich mache gerade eine Hausaufgabe für die Uni und stehe vor einem merkwürdigem Problem...

    public class SortedList<T> implements SortedCollection<T>
    {
       private class ListNode
       {
          T data;
          ListNode prev, next;
    
          public <T extends Comparable<T>>
             ListNode(T data, ListNode prev, ListNode next)
          {
             this.prev = prev;
             this.next = next;
             this.data = data;
          }
    
          public ListNode delete()
          {
             prev.next = next;
             next.prev = prev;
             --m_size;
             return next;
          }
       }
       ListNode m_first = null, m_last = null;
       int m_size = 0;
    
       public <T extends Comparable<T>> void insert(T item)
       {
          // If the list is empty, just set value.
          if(m_first == null)
          {
             m_first = new ListNode(item, null, null);
             m_last = m_first;
             return;
          }
    
          // If the value compares higher than the last element, just append it.
          if(item.compareTo(m_last.data) >= 0)
          {
             m_last.next = new ListNode(item, m_last, null);
             return;
          }
       } 
    }
    

    Ich bekomme hier sowohl bei

    this.data = data;
    

    found : T
    required: T
    this.data = data;

    als auch hier

    if(item.compareTo(m_last.data) >= 0)
    

    compareTo(T) in java.lang.Comparable<T> cannot be applied to (T)
    if(item.compareTo(m_last.data) >= 0)
    2 errors

    Wie müsste es korrekt heißen? Diese Pseudo-Concepts finde ich echt verwirrend.

    Danke und Grüße,
    Ethon



  • Du führst 3 Typen mit namen T ein: Einmal in Zeile 1, einmal in Zeile 8, einmal in Zeile 27. Aber eigentlich willst Du nur ein T haben.



  • Upps, danke. 😉


Anmelden zum Antworten