我一直在試圖解決這個一段時間,但我的Java 8技能需要一些工作。的Java 8過濾謂詞參數索引出界
我有這個問題,在一個IntStream
。我正在使用一個過濾器來調用一個謂詞,它將在當前項目和列表中的下一個項目上運行一些邏輯。
return IntStream.range(0, someList.size() - 1)
.filter(n -> someMethod(someList.get(n), someList.get(n + 1)))
.mapToObj(i -> ((Integer) i).toString())
.collect(Collectors.joining(", "));
問題是沒有檢查最後一項。
所以說我有10個項目在列表中第一次迭代將看項目0和1,然後1和2等,直到我們得到10和IndexOutOfBounds
。
沒有錯誤在這裏拋出雖然在Java中8人或許期望這是很奇怪嗎?
如何才能說「」如果我們得到索引超出範圍只是返回true「?
我希望這是有道理的。乾杯
你不應該試圖要解決運行時異常就像一個IndexOutOfBounds。這是一個錯誤。只需修復該錯誤。嘗試訪問列表界限之外的索引是沒有意義的。所以不要這樣做。 –
正如@JBNizet所說的,你不應該試圖解決'IndexOutOfBoundsException'而是解決錯誤。然而,僅僅爲了記錄,你可以用** try-catch **:'try {拋出異常的代碼} catch(IndexOutOfBoundsException e){如果發生的話執行的代碼}'執行。 – Zabuza
我不是想解決這個錯誤。我會很高興,如果它實際上拋出錯誤 – SpaceCowboy