【问题标题】:Array Queue- recompile with -xlint: unchecked/ unsafe operations [duplicate]Array Queue-使用-xlint重新编译:未经检查/不安全的操作[重复]
【发布时间】:2013-09-24 02:47:26
【问题描述】:

可能有很多错误,抱歉。我是 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;
    }
}

【问题讨论】:

  • 这不是错误。您可以忍受它 - “...使用未经检查或不安全的操作。注意:使用 -Xlint 重新编译:详细信息未检查”
  • 我认为你必须实现所有的队列抽象方法
  • 是的,我将保持原样
  • 是否需要实现Queue&lt;E&gt;接口?如果没有,请制作自己的轻量级队列接口。那么你就不需要担心泛型了。哦,你可能想把你的类声明改成public class ArrayQueue implements Queue&lt;Item&gt; {...

标签: java queue unchecked


【解决方案1】:

有关“未经检查或不安全的操作”的警告不应阻止代码被编译。您必须修复其他错误。请注意,如果没有收到此类警告(或禁止警告),就不可能实现基于数组的泛型集合。这就是为什么最好使用现有的 JFC Collection 实现,因为您可以期望他们的开发人员足够小心且经验丰富,能够区分不可避免的警告和实际问题。

【讨论】:

    【解决方案2】:

    这不是一个错误,这只是一个警告,因为其中一个演员。您可以使用以下选项之一: 1- 添加项目[] ts = (Item[])(new Object[CAPACITY]); q = ts; 或

    2- 在类的开头添加@SuppressWarnings("unchecked") 以忽略所有警告并查看错误所在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多