try-with-resource 문법

7630 단어 자바 기반
jdk 1.7 은 try-with-resource 문법 을 도 입 했 습 니 다.다음 과 같이 사용 합 니 다.
하나의 클래스 가 AutoCloseable 인 터 페 이 스 를 실현 하면 close 방법 을 병행 합 니 다.그러면 이 종 류 는 try-catch 의 try 뒤의 괄호 에 쓸 수 있 고 try-catch 블록 이 실 행 된 후에 이 방법 을 자동 으로 실행 할 수 있 습 니 다.예 를 들 면 다음 과 같다.
public class TryWithResource implements AutoCloseable {

    private int age = 18;

    @Override
    public void close() throws Exception {
        System.out.println("this is close   ");
    }

    public static void main(String[] args) {
        try (TryWithResource tryWithResource = new TryWithResource()) {
            System.out.println(tryWithResource.age);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

이 방법 을 실행 하면 인쇄 결 과 를 볼 수 있 습 니 다.
18
this is close   

분명히 이렇게 쓰 는 것 은 아래 의 이런 고전적 인 서법 의 효과 와 같 지만,단지 좀 더 간편 해 보일 뿐이다.
public class TryWithResource{

    private int age = 18;

    public void close() throws Exception {
        System.out.println("this is close   ");
    }

    public static void main(String[] args) {
        TryWithResource tryWithResource = new TryWithResource();
        try {
            System.out.println(tryWithResource.age);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                tryWithResource.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

이 전형 적 인 쓰기 방법 은 익숙 하지 않 습 니까?자바 프로 그래 밍 에서 자원 에 대한 조작 이 많 습 니 다.예 를 들 어 파일 흐름 등 연결 해 야 할 자원 은 모두 finally 에서 수 동 으로 자원 을 닫 아야 합 니 다.그러나 자원 을 닫 는 것 이 이상 할 까 봐 최종 적 으로 finally 블록 에 try-catch 블록 을 추 가 했 습 니 다.이 구 조 는 어떻게 보면 좋 지 않 지만 어 쩔 수 없습니다.JDK 1.7 이전 에는 견본 만 쓸 수 있 었 다.하지만 JDK 1.7 이후 에는 인 터 페 이 스 를 통 해 우아 하 게 코드 를 쓸 수 있 게 됐다.
예 를 들 어:
기본 자바.io.FileReader 등 클래스 는 이미 이 인 터 페 이 스 를 실현 하 였 기 때문에 우 리 는 파일 을 조작 할 때 바로 이런 우아 한 방식 으로 쓸 수 있 습 니 다.
자바 읽 기 파일 쓰기

좋은 웹페이지 즐겨찾기