1

我是java的初学者,正在使用数组编写一个堆栈类。

所以我在这个类中有一个方法叫 pop

 public int Pop(){
   if (current_size >0)
    { // do something 
      return ele;
     }
     // return nothing  <-- ths is where error is
     }

因为我有返回类型 int.. 类总是期望返回一些东西。我应该如何处理这种情况,如果条件为真,该方法将返回一些东西,否则它不应该返回任何东西?谢谢

4

5 回答 5

7

你必须总是返回一些东西(除非你的方法是void)或者抛出一个异常。你可以试试这个:

public int pop() {
    if (current_size > 0) 
        return ele;
    throw new EmptyStackException();
}
于 2012-09-24T02:40:29.867 回答
3

在不知道你想要的行为是什么的情况下,很难告诉你,但我可以提供一些建议。

  1. 如果您想真正不返回任何内容,则应将返回类型更改为Integer包装类而不是int原始类型。这样你就可以返回null,这没什么。
  2. 如果这是一个例外情况,也许您想要throw一个Exception.

    if (evaluateSomething()) {
        // do something in response...
    } else {
        throw new RuntimeException("You can't do that!");
    }
    
于 2012-09-24T02:42:44.063 回答
2

您可以在堆栈为空时引发异常,或者如果您的堆栈从不包含负数,您可以返回一个特殊的 int,例如 -1。

throw new StackIsEmptyException();
于 2012-09-24T02:43:27.853 回答
1

您需要有一个 return 语句或为所有可能的退出点抛出异常。

于 2012-09-24T03:19:44.440 回答
1

除非您的方法是void,否则您必须返回变量或抛出/捕获异常。这样的事情应该做;

    public int pop() 
{
    if (current_size > 0) 
        return ele;                  //return variable
    throw new EmptyStackException(); //throw new exception
}
于 2017-03-16T11:04:29.517 回答