7

コード レビュー ツールが不平を言っます

これはどのように可能ですか?これは、参照によってコレクションを返しているためですか?

protected void saveSafeScan(final Response response, final Dtec dtec) throws dtecException
    {
        Collection<String> safeScanWarnings = dtec.getSafeScanWarnings();
        if (safeScanWarnings!=null && safeScanWarnings.size()>0)
        {
            Iterator<String> iterator = safeScanWarnings.iterator();

            int i = 0;
            while (iterator.hasNext())
            {
                String safeScanCode = iterator.next();
                if (i == 0)
                {
                    response.setSafeScanCode(safeScanCode);
                    response.setSafeScanCodeText(getMessage(String.format("DTECRESPONSE_SAFESCANCODE_%s",
                            StringUtils.trimToEmpty(safeScanCode))));
                }
                SafeScanWarning safeScan = new SafeScanWarning();
                safeScan.setCode(safeScanCode);
                safeScan.setMessage(String.format("DTECRESPONSE_SAFESCANCODE_%s", StringUtils.trimToEmpty(safeScanCode)));
                safeScan.setPriority(i);
                response.getSafeScanWarnings().add(safeScan);
                i++;
            }
        }
    }
4

3 に答える 3

11

本当にその行を指している場合、コード レビュー ツールのバグのように見えます。

size()これはローカル変数であるため、nullity チェックと呼び出しの間に他の何かによって変更される可能性はありませんNullPointerException

于 2011-07-27T19:57:06.020 に答える
0

null実行された場合、値が逆参照されることを保証するステートメントの分岐がありNullPointerException、コードの実行時に が生成されます。もちろん、問題は、分岐またはステートメントが実行不可能であり、NullPointerExceptionスローできないことである可能性があります。それを決めるのは の能力を超えていFindBugsます。

于 2012-03-21T04:10:31.320 に答える