您好,登錄后才能下訂單哦!
在java7之前,對于一些需要使用finally關(guān)閉資源的操作,會顯得很臃腫.
try
{
//
}
catch(Exception e)
{
//
}
finally
{
if(xxxx != null)
{
xxxx.close();
}
}
在java7中引入了可以在try中直接聲明需要關(guān)閉的資源的功能,在try后的圓括號直接定義一個或多個資源即可.
try(
var xxx = new xxx();
var xxx = new xxx();
)
{
//
}
但是這些類都需要實(shí)現(xiàn)了Closeable或AutoCloseable接口,實(shí)現(xiàn)其中的close().
Closeable接口是AutoCloseable的子接口,其中的close()拋出了IOException異常,實(shí)現(xiàn)接口時要注意拋出的異常需是IOException異?;騃OException子類異常.
AutoCloseable接口中的close()拋出的異常是Exception,實(shí)現(xiàn)接口時可以拋出任何類型的異常.
java7幾乎把所有的"資源類"(包括文件IO的各種類,JDBC編程的Connection,Statement等接口)進(jìn)行了改寫,改寫后的資源都實(shí)現(xiàn)了AutoCloseable或Closeable接口.(引自<<瘋狂Java講義>>(第5版) P381)
java9不像java7一樣在try中定義資源,只需要自動關(guān)閉的資源有final修飾即可.也就是說,可以不在try中聲明,在try前聲明且使用final修飾即可.
final var xxx = new xxx();
final var xxx = new xxx();
try(xxx;xxx)
{
//
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。