私はHashMapを持っていると私はそれのHashMapにオブジェクトを追加するメソッドを作成して値などのオブジェクトを配置するが、私はNullPointerExceptionがここは、HashMapの
private HashMap<String, Player> createPlayerStatsHashMap(List<String> listPlayerNames, PlayerScoresDatabase db) {
for (int i = 0; i < listPlayerNames.size(); i++) {
Player player = new Player(i, listPlayerNames.get(i));
player.setWinPercentage(db.getWinPercentage(listPlayerNames.get(i)));
player.setBestGame(db.getBestGame(listPlayerNames.get(i)));
player.setWorstGame(db.getWorstGame(listPlayerNames.get(i)));
player.setRivalPlayer(db.getRivalPlayer(listPlayerNames.get(i)));
// Each of these Logs returns the correct value
Log.d(StartingPageActivity.DEBUG_TAG, "PlayerStatsActivity createPlayerStatsHashMap player name: " + player.getPlayerName());
Log.d(StartingPageActivity.DEBUG_TAG, "PlayerStatsActivity createPlayerStatsHashMap player winpercent: " + player.getWinPercentage());
Log.d(StartingPageActivity.DEBUG_TAG, "PlayerStatsActivity createPlayerStatsHashMap player bestgame: " + player.getBestGame());
Log.d(StartingPageActivity.DEBUG_TAG, "PlayerStatsActivity createPlayerStatsHashMap player worstgame: " + player.getWorstGame());
// This is where the NullPointerException occurs
listPlayerStats.put(listPlayerNames.get(i), player); // this is line 55
}
return listPlayerStats;
}
を取得していますスタックトレースです:
原因:java.lang.NullPointerException:nullオブジェクト参照で仮想メソッド 'java.lang.Object java.util.HashMap.put(java.lang.Object、java.lang.Object)'を呼び出そうとしました at com.brbecker.tabletopcompanion.activities.PlayerStatsActivity.createPlayerStatsHashMap(PlayerStats android.app.Instrumentationでandroid.app.Activity.performCreate(Activity.java:6876) でcom.brbecker.tabletopcompanion.activities.PlayerStatsActivity.onCreate(PlayerStatsActivity.java:33) でActivity.java:55) 。 android.app.ActivityThread.access $ 1100 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350) でandroid.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207) でcallActivityOnCreate(Instrumentation.java:1135) (ActivityThread.java:222) android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1795) android.os.Handでler.dispatchMessage android.app.ActivityThread.main(ActivityThread.java:7229)でandroid.os.Looper.loopで(Handler.java:102) (Looper.java:158)
ありがとう!
NPEはどこからデバッグするのですか? – Javant
生のタイプは使用しないでください。これは 'HashMap'の正しいコンストラクタではありません。これは 'Object'の正しいコンストラクタではありません。これらのメソッドもありません。明らかなコンパイラエラーがあなたの実際のコードで修正されていると仮定すると、 'list.get(i)'が 'null'を返すように見えます。 –
MyObjectオブジェクト=新しいMyObject(...)ではないオブジェクト – whyn0t