java7
부터 AutoCloseable
인터페이스를 구현한 클래스라면 try-catch-finally 구조에서 지저분하게 finally
블럭에 close()
를 명시적으로 호출 하지 않아도 자동으로 close 시켜주는 쿨한 feature를 제공합니다.
하지만 옛날에 자바를 배워서 쭉 코딩은 해왔지만 새로운 코딩스타일을 선호 하지 않는 분들은 아래와 같이 코딩 합니다.
1 |
|
분명 나쁜 코드는 아니지만 좋은 코드라고 할수도 없겠네요.
Oracle에서 제공하는 공식 docs를 먼저 읽어봅니다.
try 선언부에 세미콜론(;)으로 구분된 한개 이상의 리소스를 선언(declarations)을 할 수 있다고 하네요. 리소스는 java.lang.AutoCloseable
를 implement 하고 있는 클래스 라면 리소스로 쓰일수 있다고 합니다.
위 코드를 try-with-resources statement 를 이용한 코드로 바꿔보겠습니다.
1 |
|
훨씬 보기에 깔끔한 코드로 바뀐것을 확인 할 수 있습니다.
FileReader
/Writer
등과 관련된 클래스들, DB Connection
과 관련된 클래스들에 주로 많이 사용할 수 있으니 아직까지 try-with-resources statement 의 사용법을 잘 모르셨던 분들이라면 꼭 익히시길 추천합니다.