2013-09-24 24 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”)忽略所有警告并查看错误的位置。

相关问题