리소스를 사용하는 경우 사용후에 반드시 close()
를 호출해야 하는 경우가 있습니다. 이러한 경우 @Cleanup을 추가하면 lombok이 자동으로 리소스를 종료하는 코드를 호출해줍니다.
Lombok | 자동생성 코드 |
---|
코드 블럭 |
---|
language | java |
---|
linenumbers | true |
---|
| 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);
}
}
} |
|
코드 블럭 |
---|
language | java |
---|
linenumbers | true |
---|
| 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를 지정할 수 있습니다.
코드 블럭 |
---|
language | text |
---|
linenumbers | true |
---|
|
lombok.cleanup.flagUsage = [warning | error] |
@Cleanup에 대한 좀더 상세한 사항은 https://projectlombok.org/features/Cleanup을 참고하십시오.