将AutoClosable用于包装代码块并生成时间度量的类是否在语义上正确?根据我的理解,这里没有资源,根据http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000157.html
,这是一个问题class Metric implements AutoCloseable {
private final Logger logger;
private int startTime;
public Metric(Logger logger) {
this.logger = logger;
}
static Metric createStarted(Logger logger) {
Metric metric = new Metric();
metric.startTimer();
return metric;
}
public startTimer() {
this.startTime = System.milliseconds()
}
@Override
public close() {
logger.debug(System.milliseconds() - startTime);
}
}
class Client {
public static void main(String... args) {
try (Metric metric = Metric.createStarted()) {
// do stuff
}
}
还有一些原因可以解释为什么使用lambdas不是一种选择。