【问题标题】:Null pointer exception while dequeing Queue in java在Java中使队列出队时出现空指针异常
【发布时间】:2014-09-30 11:40:34
【问题描述】:

我的出队方法:

public  T deQueue(){
        if(isempty()){
            System.out.println("Queue is empty, cant dequeue");
        }else if(front==rear){
            T value=queue[front];
            front=-1;
            rear=-1;
            return value;
        }else{
            T value=queue[front];
            front++;
            return value;
        }
        return null;    
    }

在这里,我在最后一行返回 null。我应该返回什么而不是 null?

【问题讨论】:

  • 你要返回什么?
  • 我想返回出队的值。 T- 泛型类型
  • 我认为你应该更专注于方法的调用,并在使用方法的结果之前添加空检查。
  • @TAsk 我只是想打印那些出队的值:System.out.println((T) newQueue.deQueue().toString());

标签: java data-structures queue deque


【解决方案1】:

在调用方法后应加上null check,避免出现空指针异常。

Object object=newQueue.deQueue();
if(object!=null){
    System.out.println(object);
}

【讨论】:

  • 每次显示出列元素,我必须创建尽可能多的对象?
  • 不,如果您愿意,您可以重用该对象。 ;)
【解决方案2】:

最后不需要指定return null。 if - else if - else 所有情况都已经处理完毕。

【讨论】:

  • 只对了一半:在第一个if 块中,没有return。所以需要一个最终的return。另外,我想,如果没有T 类型的对象可用,问题是关于返回什么。
猜你喜欢
  • 2016-12-05
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 2020-03-21
  • 2014-09-26
相关资源
最近更新 更多