JAVA7 try-resources 구문 활용.
try-resources
자바7에 추가된 리소스 객체 처리 방법
예외 발생 여부와 상관럾이 정리해줘야했던 리소스 객체의 close()를 호출해준다.
JAVA 6까지의 사용했던 코드
try {
FileWriter fileWriter = new FileWriter();
...
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fileWriter != null) {
fileWriter.close();
}
}
try-resources 구문 사용
try (
FileWriter fileWriter = new FileWriter();
) {
...
} catch (Exception e) {
e.printStackTrace();
}
try-resources 구문 활용
- 사용자가 정의한 리소스 객체도 try-resources구문으로 사용할 수 있다.
TestResourcesClass
public class TestResourcesClass implements AutoCloseable {
public TestResourcesClass() {
System.out.println("Test is created.");
}
public void doSomething() {
System.out.println("do something");
}
@Override
public void close() {
System.out.println("Test is closed.");
}
}
- AutoCloseable을 상속받아서 close() 함수를 override하여 동작을 설정한다.
Test
import org.junit.Test;
public class DataServiceTest {
@Test
public void tryResourceTest() {
try (
TestResourcesClass testResourcesClass = new TestResourcesClass();
) {
testResourcesClass.doSomething();
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행결과
Test is created.
do something
Test is closed.
- 굳이 사용자 정의 리소스 객체를 사용할 일이 있을까 싶긴하지만 알고 있으면 언젠간 쓸일이 있을지도…