-3

私はJavaプログラムを実行しようとしていますが、現在のコードはこのコードでヌルポインタ例外を返しているようです:

IntegerDesc yearOfBuildDesc = 
     (IntegerDesc) myConcept.getAllAttributeDescs().get("yearOfBuild");
try {
    query.addAttribute(yearOfBuildDesc,
        yearOfBuildDesc.getAttribute("yearOfBuild"));
}
catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

問題がどこから来るか知っていますか?

4

3 に答える 3

2

おそらく次のいずれかです。

  • myConceptですnullので、.getAllAttributeDescs()倒れます。
  • myConcept.getAllAttributeDescs()を返すnullので、.get("yearOfBuild")倒れます。
  • myConcept.getAllAttributeDescs().get("yearOfBuild")を返しnull、それを呼び出すyearOfBuildDescと beになり、例外が発生します。nullgetAttribute
  • query転倒の原因となりますnull.addAttribute(...)
  • メソッド内の何かがgetAllAttributeDescs呼び出されると、null ポインター例外が発生します。
  • メソッド内の何かがget呼び出されると、null ポインター例外が発生します。
  • メソッド内の何かがaddAttribute呼び出されると、null ポインター例外が発生します。
  • メソッド内の何かがgetAttribute呼び出されると、null ポインター例外が発生します。
  • 最初のコードは をスローしParseException、そのprintStackTraceメソッドへの呼び出しはヌル ポインター例外をスローします (可能性は低い)。

一般に、null ポインター例外を見つけるときは、次の問題を探す必要があります。

  • 式の選択 (つまりx.y) -xnull?
  • メソッド呼び出し - メソッドは null ポインター例外をスローできますか?

あなたがキャッチした例外なので、ここにeある可能性を除外しました。null

于 2013-01-13T21:46:10.063 に答える
0

yearOfBuildDescヌルかもしれません。try catch で使用する前にテストする

myConceptnull の場合もあります。こちらも確認してください。

于 2013-01-13T21:44:10.103 に答える
0
yearOfBuildDesc.getAttribute("yearOfBuild");

NullPointerException上記の行は null の場合にスローyearOfBuildDescし、null チェックを追加します。

于 2013-01-13T21:46:13.933 に答える