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 메소드가 호출되었습니다.
valueにdisposeを指定したことで、dispose()メソッドが実行された。