리소스를 사용하는 경우 사용후에 반드시 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을 참고하십시오.