2

MVCパターンを実装しようとして、に戻ってきますNullPointerException

ユーザー入力に基づいてデータを再プロットする必要があるGUIの領域を設定することになると、私はトリックを見逃していると感じます。例外はこれを示しています。

display.replot(model.getData(), model.getSamples());

displaypaintメソッドを含むクラスのインスタンスです。getDataおよびgetSamplesはモデルに記述されており、GUIへのユーザー入力で更新する必要があるセッターに基づいています。

問題はデータセットが元々nullであることにあるのではないかと思ったので、モデルに初期条件を提供しました。

4

2 に答える 2

2

NullPointerExceptionつまり、存在しない()nullオブジェクトで関数を呼び出すか、パラメーターの1つが。である場合、関数呼び出しがその例外を意図的にスローする可能性がありますnull。どちらの場合かを確認し、そのif周りにガードを配置するか、オブジェクトが有効であることを確認する必要があります。

于 2012-04-16T01:20:15.580 に答える
1

NPEは、対応するIDE(IntelliJなど)を使用して簡単に理解できます。デバッガーを使用したパススルーにより、日としてわかりやすくなります。

スタックトレースは.javaソースファイルとそれが発生した行番号を示しているため、NPEがなくても簡単に把握できます。.javaソースファイルを開き、行番号の表示をオンにして、エラーの発生源に直接移動できるはずです。

その行のすべてのオブジェクト参照を見て、どれがnullであるかを確認します。それはあなたが初期化に失敗したものです。

あなたの場合、newPlotが初期化される場所がわかりません。名前と参照型を宣言するだけですが、何かを指すように要求することはありません。デフォルト値はnullです。

コンストラクターに渡されるnewDataリストがnullの場合も、同じ問題が発生します。あなたはそれをチェックしません。

于 2012-04-16T01:16:42.377 に答える