Java 自动关闭度量包装器
对于封装代码块并生成时间度量的类,使用AutoClosable在语义上是否正确?据我所知,这里没有资源,这是根据Java 自动关闭度量包装器,java,Java,对于封装代码块并生成时间度量的类,使用AutoClosable在语义上是否正确?据我所知,这里没有资源,这是根据 使用lambdas在这里不是一个选项还有一些原因。无论AutoCloseable接口和try with resource模式是否用于此目的,我想这是它的一个可能用途。在这种情况下,定义一个侦听器接口并添加诸如metricStarted()metricStopped()之类的API将更合适。您所展示的是“锁定”到单个API。 class Metric implements AutoCl
使用lambdas在这里不是一个选项还有一些原因。无论AutoCloseable接口和try with resource模式是否用于此目的,我想这是它的一个可能用途。在这种情况下,定义一个侦听器接口并添加诸如metricStarted()metricStopped()之类的API将更合适。您所展示的是“锁定”到单个API。
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
}
}