2011-03-04 24 views
0

値memanufacturerはjdomを使用してxmlドキュメントから取得され、この値がmeman配列に割り当てられるとNullPointerExceptionがスローされます。nullポインタ例外

Element memanufacturer = (Element) row27.get(j9); 
     meman[0] = memanufacturer.getValue(); 

可能性のある間違いである可能性があります。

  • memanufacturer
  • memanは、我々はできる

nullの場合もnullになることがあります。コードの2行目で例外を想定すると

おかげ

+0

memanは、常に良いです。StackTraceはいつも素敵です。 – bestsss

答えて

1

は、2つの明白な可能性がありますこれらのうちどれが当てはまるかを教えてください。しかし、あなたはできるはずです。

編集:さて、今度はmemanがnullであることがわかりました。それは問題です。私はあなたの代わりにList<String>を使うことをお勧め:List<String>の代わりに、配列を使用して

List<String> meman = new ArrayList<String>(); 

... 
Element memanufacturer = (Element) row27.get(j9); 
meman.add(memanufacturer.getValue()); 

は、あなたが開始する前にサイズを知る必要がないことを意味します。

しかし、あなたがエラーを理解していないという事実は、本当のプロジェクトでそれ以上のことをする前に、良い入門Javaの本を実際に読んでおくべきであることを示唆しています。 XMLなどを扱う前に、配列、コレクションなどがどのように動作するのか、間違いなく理解する必要があります。それは長期的にあなたに多くの時間を節約します。

+0

row27.getメソッドは、NPEをちょうど良い(どこかに)投げることができますが、私のベットはnullのための 'meman'です – bestsss

+0

はいmemanはnullとして初期化されます。ヌル; memanが単純な文字列変数であれば問題はありませんでした。しかし、私は配列のように将来コードのこの部分はループされている必要があり、私はループ中にすべての値を格納したい。 – technocrat

+0

@techocrat:null変数を逆参照しようとしているので、もちろん爆発しています。あらかじめ配列を作成するか、 'List 'を使用するように変更する必要があります。あらかじめサイズを知る必要はありません。 –