`

Java7 AutoCloseable入门实例

阅读更多

本文转自:http://www.xiaoyaochong.net/wordpress/?p=330

AutoCloseable接口,表示一种不再使用时需要关闭的资源。这个接口下只有一个方法,close()。这个方法在try-with-resource语法下会被自动调用,支持抛出Exception,当然它也鼓励抛出更详细的异常。close()建议不要抛出线程中断的InterruptedException。对这个接口的实现,规范强烈建议close()是幂等的,也就是说多次调用close()方法和一次调用的结果是一样的。

 

AutoCloseable的简单实现:

public class MyResource implements AutoCloseable {

    @Override
    public void close() throws Exception {
        System.out.println("Close resource!");
    }
    
    public void readResource() {
        System.out.println("Read resource!");
    }

}

 try-resource单元测试:

@Test
    public void testCloseResource() throws Exception {
        try(MyResource autoCloseable = new MyResource()) {
            autoCloseable.readResource();
        }
    }

 输出结果:

Read resource!
Close resource!

 

 

try-resource-finally单元测试:

@Test
    public void testCloseResource2() throws Exception {
        try(MyResource autoCloseable = new MyResource()) {
            autoCloseable.readResource();
        } finally {
            System.out.println("Executor finally!");
        }
    }

 输出结果:

Read resource!
Close resource!
Executor finally!

 

分享到:
评论

相关推荐

    java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java

    java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象...

    Java 2 入门与实例教程pdf

    Java 2 入门与实例教程pdf,

    Java实例教程,入门教程(代码)

    Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门...

    JAVA教程,java 2 入门与实例教程,高手入门到精通

    "JAVA教程,java 2 入门与实例教程,高手入门到精通"这个主题覆盖了从基础到高级的完整Java学习路径,特别适合对Java 2平台感兴趣的学习者。Java 2,也称为Java SE(标准版),是Java平台的核心版本,包含了开发和运行...

    java rest api入门实例

    REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,...

    Java 2 入门与实例教程

    Java 2 入门与实例教程是一本专为初学者设计的编程教材,主要涵盖了Java 2平台的基础知识和实际应用。PDG格式通常用于电子书籍,提供了方便的阅读体验。通过这本书,读者将深入理解Java语言的核心概念,并通过丰富的...

    Java入门实例源代码_1

    "Java入门实例源代码_1"这个压缩包提供了一系列的Java编程实例,覆盖了初学者需要掌握的基础知识。下面,我们将逐一解析这些实例所涉及到的关键知识点。 1. **实例1**:通常,实例1会涵盖Java程序的基本结构,包括`...

    elasticsearch java客户端Jest入门实例

    本实例参考网上代码:http://www.ibm.com/developerworks/cn/java/j-javadev2-24/ 通过Jest和Junit单元测试的方法创建索引和检索 第一步:启动一个elasticsearch服务,bin目录下的elasticsearch.bat 第二步:建索引,...

    java 网络编程入门实例总结

    在这个入门实例总结中,我们将深入探讨Java中的两种主要通信协议:UDP(用户数据报协议)和TCP(传输控制协议),并借助源码示例理解其工作原理。 首先,让我们来看看UDP通信。UDP是一种无连接的、不可靠的传输协议...

    java flex入门实例

    Java Flex入门实例主要涉及到的是Java和Adobe Flex的集成开发,这是一种常见的富互联网应用程序(Rich Internet Application,RIA)开发模式。Flex是基于ActionScript和Flash Player技术的开发框架,用于构建具有...

    java入门与实例

    "Java入门与实例"针对的是对编程感兴趣的初学者,它提供了通俗易懂的讲解和实践案例,帮助初学者快速掌握Java编程基础。 Java的基础知识点包括: 1. **环境搭建**:首先,学习Java需要安装Java Development Kit ...

    Java SE编程入门教程 java序列化(共14页).pptx

    Java SE编程入门教程 java入门以及变量debug(共63页).pptx Java SE编程入门教程 java设计模式(共17页).pptx Java SE编程入门教程 java数组(共33页).pptx Java SE编程入门教程 java网络编程(共29页).pptx ...

    优质课件 java基础入门必学 Java SE编程入门教程 全套PPT课件 共30个文件 含辅助资料.rar

    Java SE编程入门教程 java入门以及变量debug(共63页).pptx Java SE编程入门教程 java设计模式(共17页).pptx Java SE编程入门教程 java数组(共33页).pptx Java SE编程入门教程 java网络编程(共29页).pptx ...

    java MATLAB Builder For Java入门实例讲解

    MATLAB Builder For Java入门实例讲解

    java入门实例

    "Java入门实例"旨在帮助新手快速理解并实践Java编程。 1. **环境搭建**: 在学习Java前,你需要先安装Java Development Kit (JDK),它包含了编译Java程序所需的工具。设置好环境变量`JAVA_HOME`,`PATH`和`...

    Java SE编程入门教程 java instanceof(共3页).pptx

    Java SE编程入门教程 java入门以及变量debug(共63页).pptx Java SE编程入门教程 java设计模式(共17页).pptx Java SE编程入门教程 java数组(共33页).pptx Java SE编程入门教程 java网络编程(共29页).pptx ...

    JAVA3D官方实例

    7. **渲染(Rendering)**:JAVA3D提供了多种渲染模式,如颜色、纹理、深度测试等,以控制3D图像的绘制方式。 8. **用户交互(User Interaction)**:可以添加鼠标和键盘监听器,使用户能够与3D场景互动,如旋转、...

    JAVA编程实例入门

    Java编程实例入门是针对初学者的一本优秀教材,它涵盖了JAVA语言的基础知识,包括如何创建、编译和运行简单的JAVA程序。以下将详细介绍这些基础知识。 首先,基础的JAVA实例从"Hello World!"程序开始。在Java中,每...

    Java入门与实例教程(非常详细,适合初学者)

    本教程“Java入门与实例教程”是专为初学者设计的,旨在帮助他们快速掌握Java编程的基础知识并能动手实践。 首先,Java入门部分将介绍基本概念,包括Java的发展历程、特点以及如何安装和配置Java开发环境,如JDK...

Global site tag (gtag.js) - Google Analytics