我正在尝试编写一段非常简单的代码,但无法找到一个优雅的解决方案:
int count = 0;
jdbcTemplate.query(readQuery, new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs) throws SQLException {
realProcessRow(rs);
count++;
}
});
这显然无法编译。我知道的两个解决方案都很糟糕: 我不想将 count 设为类字段,因为它实际上是一个局部变量,我只需要用于日志记录目的。 我不想将 count 设为数组,因为它很丑陋。
这太愚蠢了,一定有一个合理的方法吗?
最佳答案
第三种可能性是使用final-mutable-int-object,例如:
final AtomicInteger count = new AtomicInteger(0);
....
count.incrementAndGet();
Apache Commons 也有一个 MutableInteger
我相信,但我没有使用过它。
关于java - 绕过 Java 闭包最终限制的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10937956/