2013-09-24 43 views
1

可能是大量的錯誤,對不起。我是新來的Java和我有一個相當困難的時間,所有的語法和whatnot。我無法越過這個錯誤,但我無法看到它在哪裏。我甚至無法編譯,因爲我得到以下消息:「...使用未檢查或不安全的操作。注意:使用-Xlint重新編譯:未檢查細節」 請幫助。數組隊列 - 使用-xlint重新編譯:未檢查/不安全的操作

據說這是爲了實現Queue接口是非常簡單,只是

public boolean enqueue(Item item); 
public Item dequeue(); 
public int size; 
public boolean isEmpty(); 
public boolean isFull(); 

我也儘量做到圓形的,但我不知道如果我成功了。 我認爲這是那些導致這個問題的泛型,我不知道。

public class ArrayQueue<Item> implements Queue<Item> { 
    private Item[] q; 
    public int N = 0; 
    private int tail = 0; 
    private int head = 0; 

    public ArrayQueue(int capacity) { 
    q = (Item[]) new Object [capacity]; 
    } 

    public boolean enqueue(Item item) { 
     if (isFull()) 
      return false; 
     q[tail++] = item; 

     if(tail == q.length) 
      tail = 0; 
     N++; 
     return true; 
    } 

    public Item dequeue() { 
     if (isEmpty()) 
      return null; 
     N--; 
     Item headItem = q[head]; 
     q[head++] = null; 
     if(head == q.length) 
      head = 0; 

     return headItem; 
    } 



    public int size() { 
     return N; 
    } 

    public boolean isFull() { 
     return N == q.length; 
    } 


    public boolean isEmpty() { 
     return N == 0; 
    } 
} 
+0

這不是一個錯誤。你可以忍受它 - 「...使用未經檢查或不安全的操作。注意:用-Xlint重新編譯:取消選中詳細信息」 –

+1

我認爲你必須實現所有隊列抽象方法 – gjman2

+0

是的,我將它作爲 – user2006562

回答

0

約「未選中或不安全的操作」警告不應妨礙代碼編譯。你必須修復其他錯誤。請注意,不可能實現基於數組的泛型集合,而不會收到這樣的警告(或抑制它們)。這就是爲什麼最好使用現有的JFC Collection實現,因爲您可以期望他們的開發人員有足夠的經驗和足夠的經驗來區分不可避免的警告和真正的問題。

0

這不是一個錯誤,這只是一個警告,因爲其中一個鑄造。您可以使用以下選項之一: 1-添加項目[] ts =(Item [])(new Object [CAPACITY]); q = ts; 或

2-在類的開頭添加@SuppressWarnings(「unchecked」)忽略所有警告並查看錯誤的位置。

相關問題