1

私はJavaの初心者で、配列を使用してスタッククラスを作成しています。

だから私はこのクラスにpopというメソッドを持っています

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

私はreturntypeintを持っているので、クラスは常に何かを返すことを期待しています。条件が真の場合にメソッドが何かを返す場合、それ以外の場合は何も返さない場合に、どのように対処する必要がありますか?ありがとう

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. これが例外的なケースである場合、おそらくあなたthrowException

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

スタックが空のときに例外を発生させるか、スタックに負の数がない場合は -1 のような特別な int を返すことができます。

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

return ステートメントを用意するか、考えられるすべての出口点に対して例外をスローする必要があります。

于 2012-09-24T03:19:44.440 に答える