1. 程式人生 > >Java7 新特性之自動關閉資源

Java7 新特性之自動關閉資源

        話不多說,直接上程式碼:

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 (...) 裡的東西,會等待 {...} 裡的語句執行完以後,自動進行關閉,僅此而已,但卻相當方便!