ifステートメントが適切に機能しない理由を見つけるのに苦労していたので、try catch代わりにブロックを使用しました。これは、私が持っていた if ステートメントです。
//selectArtistByName returns an Artist object
if (!selectArtistByName(artist.getName()).equals(artist.getName()) ||
selectArtistByName(artist.getName())==null) {
//save data to database
}
上記を実行すると、データベースが空だったNullPointerExceptionためにメソッドselectArtistByNameが返されたため、エラーが発生しました。null私が理解していないのは、if私が取得していたときにステートメントに入らなかった理由nullです。だから私はこれをやった、それはうまくいった:
try {
if (!selectArtistByName(artist.getName()).equals(artist.getName())) {
}
} catch (NullPointerException e) {
m_db.insert(TABLE_ARTIST, null, artistContents);
}
私は Java の第一人者ではありませんが、私にとっては恐ろしい修正のように思えます。どうすればこれを修正できますか。