2013-09-24 5 views
1

Наверное, тонны ошибок, извините. Я новичок в java, и у меня довольно сложное время со всем синтаксисом и еще много чего. Я не могу пройти мимо этой ошибки, но я не вижу, где она. Я не могу даже скомпилировать, потому что получаю сообщение: «... использует непроверенные или небезопасные операции. Примечание: перекомпиляция с -Xlint: непроверенная для получения более подробной информации» Помогите, пожалуйста.Array Queue - перекомпилировать с -xlint: непроверенные/небезопасные операции

Это предполагается реализовать интерфейс очереди, который в значительной степени только

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

Я думаю, что вам нужно реализовать все абстрактные методы Queue – gjman2

+0

Да, я оставляю это как есть – user2006562

ответ

0

Предупреждение о «непроверенных или небезопасных операциях» не должно препятствовать компиляции кода. Вы должны исправить другие ошибки. Обратите внимание, что невозможно реализовать универсальные коллекции на основе массивов, не получая таких предупреждений (или подавляя их). Поэтому лучше использовать существующие реализации JFC Collection, так как вы можете ожидать, что их разработчики будут осторожны и достаточно опытны, чтобы различать неизбежные предупреждения и реальные проблемы.

0

Это не ошибка, это просто предупреждение из-за одного из литья. вы можете использовать один из следующих вариантов: 1- Добавить элемент [] ts = (Item []) (новый объект [CAPACITY]); q = ts; или

2- добавить @SuppressWarnings ("unchecked") в начале класса, чтобы игнорировать все предупреждения и видеть, где ошибка.