AutoCloseable度量包装器

时间:2016-01-21 04:27:21

标签: java

将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不是一种选择。

0 个答案:

没有答案