Java7 新特性之自動關閉資源
阿新 • • 發佈:2018-11-08
話不多說,直接上程式碼:
public static class TimerContext implements AutoCloseable {
final Timer.Context ctx;
TimerContext(Timer.Context ctx) {
this.ctx = ctx;
}
@Override
public void close() {
this.ctx.close();
}
}
上面這段程式碼具體是做什麼的,大家不用記,只需要看到該類實現類 AutoCloseable 介面,並且重寫類 close 方法。顧名思義,就是實現自動關閉的。
接下來再看下面一段程式碼:
if (action.equals("fun")) {
try (MetricsService.TimerContext ignored = MetricsService.timer(MetricsService.TimerType.WS_REQUEST_FUN)) {
this.marketFunService.fun(event, jsonObject.getJSONObject("parameters"), session);
}
}
這裡用到了我們此篇文章要說的主題:try (...) {...}
什麼意思那,就是:try (...) 裡的東西,會等待 {...} 裡的語句執行完以後,自動進行關閉,僅此而已,但卻相當方便!