1

こんにちは、プログラムを実行すると Nullpointer エラーが発生します。このサイトで、JCalander Combobox からの Null Pointer Exceptionの問題を解決できると思われる投稿を見つけました。このページの提案を使用しましたが、まだエラーが発生しています。誰かが私がどこで間違ったのか教えてもらえますか?

    String end;
    if (jTimeButton3 != null) {
        SimpleDateFormat dateFormatTime2 = new SimpleDateFormat("hh:mm a");
        end = dateFormatTime2.format(jTimeButton3.getTargetDate());
        endTime.setText(end);
    } else {
        JOptionPane.showMessageDialog(
                null, "Please select a End Time.");

        return;
    }
4

3 に答える 3

3

jTimeButton3.getTargetDate()Null であるため、NullPointerException が発生しています。

日付をテストすることで修正できます。

String end;
if (jTimeButton3 != null && jTimeButton3.getTargetDate() != null) {
    SimpleDateFormat dateFormatTime2 = new SimpleDateFormat("hh:mm a");
    end = dateFormatTime2.format(jTimeButton3.getTargetDate());
    endTime.setText(end);
} else {
    JOptionPane.showMessageDialog(
            null, "Please select a End Time.");

    return;
}
于 2013-06-09T02:44:18.257 に答える
0

endTime 参照をチェックする必要があることを除いて、コードは適切に見えます。null である可能性があり、setText を呼び出しています。問題を解決するために、その周りにヌルポインターチェックを配置します。

于 2013-06-09T02:42:47.303 に答える
0

コードをよく見ると、ほぼ 100% が NPE の候補であることがわかります。

コードは次のとおりです。

String end;
    if (jTimeButton3 != null) {
        SimpleDateFormat dateFormatTime2 = new SimpleDateFormat("hh:mm a");
        end = dateFormatTime2.format(jTimeButton3.getTargetDate());
        endTime.setText(end);
    } else {
        JOptionPane.showMessageDialog(
                null, "Please select a End Time.");

        return;
    }

jTimeButton3 はifステートメントをチェックインしているため、NPE をスローしていません。これdateFomatTime2も != null でendTimeあり、候補が残っていることを意味します。そのため、コードの他の部分を投稿することをお勧めします。

:この回答は、投稿しているコードにNPEが含まれていることが確実な場合にのみ役立ちます

于 2013-06-09T02:46:38.520 に答える