2013-04-01 89 views
0

我已經實現了一個通用隊列(在java中)可以很好地處理不同的數據類型,但是當我嘗試使用引用類型實例化隊列時,編譯器出現「超出界限」錯誤; Queue<Node<T>> myQueue = new Queue<Node<T>>(); 這是我實現的一部分:一個具有參考數據類型的泛型隊列

public class Queue<F extends Comparable<? super F>> 
{ 
    private static class QueueNode<F extends Comparable<? super F>> 
    { 
     private F data; 
    private QueueNode<F> next; 

    public QueueNode() 
    { 
     next = null; 
    } 
    public QueueNode(F val) 
    { 
     data = val; 
     next = null; 
    } 
    } 
    private QueueNode<T> head, rear; 
    public Queue() 
    { 
     head = rear = null; 
    } 
    public boolean isEmpty() 
    { 
    } 
    public void enqueue(F el) 
    { 
    } 
    public F dequeue() 
    { 
    } 
} 

我有一個在節點方面實現二叉樹,且此隊列中的二叉樹類中的方法之一使用。任何人都可以幫助我發現問題並解決它! 好的,這正是編譯器所說的: 隊列> myQueue = new Queue>(); 「類型自變量節點不是類型的邊界變量F內」 「其中T,F是典型值變量: Ť延伸可比類BinarySearchTree聲明 F的延伸可比類隊列聲明」

+1

什麼是確切的編譯器錯誤消息隊列?請將其添加到您的問題。 –

+0

沒有'節點'擴展'可比較的>'? –

+1

只要'T'沒有實際的類,就不能像這樣定義一個'Queue'(類本身之外)。 'T'必須用_real_類替換。 Node是否通用?如果不是,'隊列 myQueue = new Queue ();'應該就好了。 – skirsch

回答

0

myQueue聲明應該使用而不是T

例如:要創建的String

Queue<Node<String>> myQueue = new Queue<Node<String>>(); 
相關問題