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() 메소드가 실행되었다.



최종 수정 : 2024-01-18