리소스를 사용하는 경우 사용후에 반드시 close() 를 호출해야 하는 경우가 있습니다. 이러한 경우 @Cleanup을 추가하면 lombok이 자동으로 리소스를 종료하는 코드를 호출해줍니다.

Lombok자동생성 코드
import lombok.Cleanup;
import java.io.*;

public class CleanupExample {
  public static void main(String[] args) throws IOException {
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);
    byte[] b = new byte[10000];
    while (true) {
      int r = in.read(b);
      if (r == -1) break;
      out.write(b, 0, r);
    }
  }
}
import java.io.*;

public class CleanupExample {
  public static void main(String[] args) throws IOException {
    InputStream in = new FileInputStream(args[0]);
    try {
      OutputStream out = new FileOutputStream(args[1]);
      try {
        byte[] b = new byte[10000];
        while (true) {
          int r = in.read(b);
          if (r == -1) break;
          out.write(b, 0, r);
        }
      } finally {
        if (out != null) {
          out.close();
        }
      }
    } finally {
      if (in != null) {
        in.close();
      }
    }
  }
}

만약에 메소드를 변경하고자 하는 경우 다음과 같이 메소드를 지정할 수 있습니다.

@Cleanup("dispose") org.eclipse.swt.widgets.CoolBar bar = new CoolBar(parent, 0);

lombok.config 파일에 다음과 같이 flagUsage를 지정할 수 있습니다.

lombok.cleanup.flagUsage = [warning | error]

@Cleanup에 대한 좀더 상세한 사항은 https://projectlombok.org/features/Cleanup을 참고하십시오.