以下のように実装できます。
AtomicInteger successCount = new AtomicInteger(0);
// 何かしらのデータ取得処理
List<ClassA> dataList = getDataList();
dataList.stream().forEach(data -> {
try {
// 何かしらの処理
process(data);
successCount.incrementAndGet();
} catch (Exception e) {
throw e;
}
});
ラムダ式を使うとローカル変数のインクリメントによるカウントができないため、
非常にダサいですが元々は以下のように成功するたびにListにtrueを追加して、その数をカウントしていました。
List<Boolean> successList = new ArrayList<>();
// 何かしらのデータ取得処理
List<ClassA> dataList = getDataList();
dataList.stream().forEach(data -> {
try {
// 何かしらの処理
process(data);
successList.add(true);
} catch (Exception e) {
throw e;
}
});