2

次のコードを使用して、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 を引数として取ることはできません:/ ただし、この時点でキュー内に何かが存在する必要があるため、このエラーは決して発生しないはずです。そのため、さらに深く掘り下げ続ける必要があります。しかし、このエラーについては、すべて問題なく、エラー処理が追加されました。

4

3 に答える 3