0

パラメータ値を取得したいのですが、時々それらを送信せず、私null とそのOKを返します。しかし、戻り文字列配列のチェックを実行すると、サーブレットはjava.lang.NullPointerException

nullの場合は何もしません。(流れを続ける)

String[] values = null; 
if(request.getParameterValues(fieldName).length>0)
{
    values = request.getParameterValues(fieldName);

    if(null!=values || values.length>0) // HERE IT throws NullPointerException 
    {
        Collections.addAll(strlist, values);
    }
}
4

4 に答える 4

6

そのはず

if(null!=values && values.length>0)

値がnull(に評価されるfalse) の場合、ORステートメントの条件は の他の部分を実行しOR、 をスローしNPEます。

&&there を指定すると、 atに遭遇したときにステートメントの評価をショートサーキットします。falsenull!=values

于 2013-04-29T07:45:06.307 に答える
0

in違ってorvaluesが null の場合は、次のチェックに進みません。

if(null!=values && values.length>0) // change to and 
 {
         Collections.addAll(strlist, values);
 }

&& (AND) および ||も参照してください。(OR) IF ステートメントで

于 2013-04-29T07:45:11.227 に答える