我经常面临同样的问题。 我需要计算一个 lambda 的运行次数,并在 lambda 之外使用。
例如:
myStream.stream().filter(...).forEach(item -> { ... ; runCount++});
System.out.println("The lambda ran " + runCount + "times");
问题在于runCount需要是final
,因此它不能是一个int
。它也不能是Integer
,因为它是不可变的。我可以将其作为类级别变量(即字段)进行声明,但我只需要在这段代码中使用它。
我知道有各种方法,只是好奇你偏爱哪种解决方案?你会使用
AtomicInteger
还是数组引用或其他方式?
AtomicInteger
。 - Rohit Jain