1 回答

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
因此,帶有 try-with-resources 的 AutoCloseable 接口似乎是迄今為止最好的選擇。根據(jù)我的說(shuō)法,finalize 的這種替代方案是最容易實(shí)現(xiàn)的 - 但這當(dāng)然可能會(huì)根據(jù)每個(gè)項(xiàng)目的復(fù)雜性而有所不同。
類(lèi) A 必須實(shí)現(xiàn) AutoCloseable class A implements AutoCloseable,并且創(chuàng)建其對(duì)象的所有位置都應(yīng)包含在 try 中,例如 try (A obj = new A())
現(xiàn)在更進(jìn)一步,重寫(xiě) AutoCloseable 提供的 close 方法,并從內(nèi)部調(diào)用 destroy() 。
class A implements AutoCloseable
{
@Override
public void close()
{
//log messages
destroy();
}
}
class X
{
// suppose creating object of A within some method
// enclose in try
try ( A obj = new A ())
{
//use obj
}
// at the end of scope, the close() method of A will be called.
}
添加回答
舉報(bào)