Java TryWtihResource语句

当需要关闭资源时,通常会使用try-finally语句

  public void test2() throws Exception {
    Resource resource = new Resource();
    try {
      System.out.println("doing somethings");
    } finally {
      resource.close();     
    }
  }

java7新增了tryWithResource语句专门用于处理资源关闭的情况,基本结构为:try(){}

public class TryWith {
  private class Resource implements AutoCloseable {

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

  public void test() throws Exception {
    try(Resource resource = new Resource()) {
      System.out.println("doing something");
    }
  }

  public static void main(String[] args) throws Exception {
    TryWith tryWith = new TryWith();
    tryWith.test();
  }
}

括号内用于初始化资源,资源需要实现java.lang.AutoCloseable接口,即实现close()方法。
括号内可以初始化多个资源,比如try(Resource resource1 = new Resource();Resource resource2 = new Resource()){}

tryWithResource语句类似Python中的with..as语句

posted @ 2020-05-08 09:03  Peterer~王勇  阅读(221)  评论(0编辑  收藏  举报