IO学习(十三)使用带可变参数的方法关闭IO流

有两个思路,第一种是使用多态,面向接口,第二种使用泛型

jdk1.7以后可以使用try with resource,会自动关闭,实际编译之后还是try catch finally



可变参数用“...”表示,只可以放在形参的最后一个位置,处理方式和数组一致

如下,需要抛出异常或者try-catch

public static void close(Closeable ... io){
<span style="white-space:pre">	</span>for(Closeable temp:io){
<span style="white-space:pre">		</span>if(null!=temp){
<span style="white-space:pre">			</span>temp.close();
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
}


这样在关闭流时可以直接调用这个方法

类名.cloae(os,is); 直接把IO流丢进去就好了




也可以使用泛型方法,道理一样

public static <T extends Closeable> void close(T ... io){
<pre name="code" class="java"><span style="white-space:pre">	</span>for(Closeable temp:io){
<span>		</span>if(null!=temp){
<span>			</span>temp.close();
<span>		</span>}
<span>	</span>}
}

 
 


你可能感兴趣的:(java,IO)