Try with resources로 알아서 자원 해제하기
목차
try-catch-finally에서는 finally블록에서 자원을 해제해주었다. 그러나 이럴 경우 번거롭고 코드도 복잡해져 Java 7부터는 자원을 알아서 해제시켜주는
try-with-resources
가 등장하였다. 자세히 알아보자
Try-with-resources
try에 자원 객체를 전달하면, try 코드 블록이 끝나면 자동으로 자원을 종료해주는 기능
즉, 개발자가 직접 finally 자원 해제시켜주지 않아도 된다.
Java는 try
문이 종료될 때 try
문 안에서 선언된 객체의 close()
메소드를 호출한다. 개발자가 따로 finally에서 해제시켜줄 필요가 없다.
AutoCloseable
Q : 그럼
try
문에 선언된 모든 객체들이 자동으로 해제될까?A :
java.lang.AutoCloseable
을 구현한 객체만 해당된다.
AutoCloseable
은 JDK1.7부터 추가된 인터페이스다.
개발자가 직접 AutoCloseable
을 구현하는 클래스를 생성하여 사용할 수도 있다.
정리하면
자바 7이후부터는 try문의 자원을 알아서 해제해주는
try-with-resources
가 등장하였다.단,
AutoCloseable
을 구현하는 클래스들만 해당된다.개발자가 만드는 클래스에
AutoCloseable
을 구현하여 활용해도 된다.
Reference
Last updated