次のコードを使用して、Android アクティビティ内の LinkedList からアイテムを取得します
currentAlarm = alarmQueue.peek();
alarmQueue 自体は、 Application を拡張するクラス内でそのように作成されます
public static Queue<Long> getAlarmQueue() {
if (alarmQueue == null)
{
Log.d(TAG, "alarmqueue was null, creating new one");
alarmQueue = new LinkedList<Long>();
}
return alarmQueue;
}
アプリは本番環境にあり、Google Play でリリースされていますが、.peek() を含む行が nullpointerexception をスローするというエラー レポートが時々あります。したがって、alarmQueue 自体が null であると考えたため、上記の null チェックを追加しました。実際、いくつかのテストの後、LinkedList にアイテムが含まれていない場合、.peek() が nullpointerexception をスローすることに気付きました。
nullを返す可能性があることは理解していますが、ドキュメントには例外がスローされるとは記載されていません Android Doc LinkedList
ここで何が欠けていますか?ありがとう!
編集: 例外の画像証明 EDIT2:
原因が見つかりました.. なんてひどい間違いでした... currentAlarm の型は longではなくlong だったので、 nullpointerexceptionが発生しました long はプリミティブ データ型であり、null を引数として取ることはできません:/ ただし、この時点でキュー内に何かが存在する必要があるため、このエラーは決して発生しないはずです。そのため、さらに深く掘り下げ続ける必要があります。しかし、このエラーについては、すべて問題なく、エラー処理が追加されました。