0

在我的例子中,成员变量是socket。但是这个问题对于在删除对象之前需要一些操作的任何成员变量都是通用的。

我创建了一个具有套接字成员的 java 类“DB”。我在构造函数中创建套接字成员。
套接字将保持打开状态,直到此类“DB”对象被 GC。因为我们应该使用“socket.close()”关闭套接字,而 Java 不支持析构函数。在这种情况下,我想知道我应该把“socket.close()”放在哪里?如下覆盖“finalize()”?

我听说 finalize() 是不推荐使用的方法。那么在删除对象之前成员变量需要一些操作的这种问题的长期解决方案是什么?

谢谢。

@Override
protected void finalize() throws IOException 
{
    m_socket.close();
}
4

0 回答 0