2017-01-11 11 views
0
public static String firstUpper(String phrase) { 
    if (phrase.isEmpty() || phrase == null) return null; 

スローします。 nullパラメータを除くすべてを渡しますが、nullを返す必要がある場合は例外をスローします。Javaは、文字列のメソッドはnullを返す必要がありますが、それは私が有効なパラメータ、空のパラメータやNULLパラメータを渡すように、多くの場合、このメソッドをテストする必要があり、NullPointerExceptionが発生

+0

[NullPointerExceptionがある、と私はそれをどのように修正すればよいか?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-の可能性のある重複i-fix-it) –

+3

または(||)状態チェックを元に戻すと正常に動作します。 –

+4

Javaショートサーキット評価を読み上げると、ブーリアンステートメントの順序を変更する必要がある理由を理解するのに役立ちます。http://stackoverflow.com/questions/8759868/java-logical-operator-short-circuiting –

答えて

0

それは次のようになります。

if (phrase == null || phrase.isEmpty()) 
    return null; 
+0

どうもありがとう。何か説明がありますか? – sowailam

+0

オペレータは「ショートサーキット」の動作を示します。つまり、最初の部分が「偽」のときのみ2番目の部分が評価され、それ以外の部分は評価されません。 'phrase'は' null'なので、条件を満たし、条件の2番目の部分を評価することなく戻ります。 – thegauravmahawar

0

problmフレーズがnullであるときは、その上のisEmpty()メソッドをコールしようとしているということです。 Thatsはnullpointer Exceptionにつながります。フレーズがヌルであるかどうか最初に確認します。 isEmpty()をチェックすると動作します。

if (phrase == null || phrase.isEmpty()) return null;