Java Lombok | close()メソッドの自動呼び出し - @Cleanup

@Cleanupの使用

ローカル変数に@Cleanupアノテーションを宣言すると、スコープを抜けるときにclose()メソッドが呼び出される。

package com.devkuma.tutorial.lombok;

import lombok.Cleanup;

public class CleanupTutorial {
    public static void main(String[] args) {
        @Cleanup CleanupTutorial cleanupTutorial = new CleanupTutorial();
    }

    public void close() {
        System.out.println("close 메소드가 호출되었습니다.");
    }

    public void close(String arg) {
        System.out.println("close(String) 메소드가 호출되었습니다.");
    }
}

実行結果:

close 메소드가 호출되었습니다.

@Cleanupでメソッドを指定する

次のように、実行するメソッドを指定することもできる。

package com.devkuma.tutorial.lombok;

import lombok.Cleanup;

public class CleanupTutorial2 {
    public static void main(String[] args) {
        @Cleanup("dispose") CleanupTutorial2 cleanupTutorial = new CleanupTutorial2();
    }

    public void close() {
        System.out.println("close 메소드가 호출되었습니다.");
    }

    public void dispose() {
        System.out.println("dispose 메소드가 호출되었습니다.");
    }
}

実行結果:

dispose 메소드가 호출되었습니다.
  • valuedisposeを指定したことで、dispose()メソッドが実行された。