This question already has answers here:
What causes javac to issue the “uses unchecked or unsafe operations” warning
(11个答案)
在8个月前关闭。
可能有很多错误,对不起。我是Java的新手,我在所有语法和其他方面都遇到了困难。我无法克服此错误,但看不到它在哪里。我什至无法编译,因为收到以下消息:“ ...使用未经检查或不安全的操作。注意:使用-Xlint重新编译:未经检查以获取详细信息”
请帮忙。
这应该实现Queue接口,这几乎就是
我确实尝试过使它成为圆形,但是我不知道我是否成功。
我不知道是那些引起问题的仿制药。
(11个答案)
在8个月前关闭。
可能有很多错误,对不起。我是Java的新手,我在所有语法和其他方面都遇到了困难。我无法克服此错误,但看不到它在哪里。我什至无法编译,因为收到以下消息:“ ...使用未经检查或不安全的操作。注意:使用-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;
}
}
最佳答案
关于“未经检查或不安全的操作”的警告不应阻止代码被编译。您必须修复其他错误。请注意,在没有得到此类警告(或禁止它们)的情况下,不可能实现基于数组的通用集合。这就是为什么最好使用现有的JFC Collection
实施,因为您可以期望他们的开发人员要足够谨慎和经验丰富,以区分不可避免的警告和实际问题。
10-06 16:02