用于解决Java闭包的最终限制的模式

MK.*_*MK. 0 java closures coding-style

我正在尝试编写一段非常简单的代码,但无法找到一个优雅的解决方案:

int count = 0;
jdbcTemplate.query(readQuery, new RowCallbackHandler() {
         @Override
         public void processRow(ResultSet rs) throws SQLException {
            realProcessRow(rs);
            count++;
         }
      });
Run Code Online (Sandbox Code Playgroud)

这显然不能编译.我知道的两个解决方案都很臭:我不想计算一个类字段,因为它实际上是一个我需要用于记录目的的局部变量.我不想数数数组,因为它很难看.

这只是愚蠢的,必须有一个合理的方法来做到这一点?

ass*_*ias 5

第三种可能性是使用final-mutable-int-object,例如:

final AtomicInteger count = new AtomicInteger(0);
....
count.incrementAndGet();
Run Code Online (Sandbox Code Playgroud)

Apache Commons也有MutableInteger我相信,但我还没有使用它.