detach 抽象方法
- Object detach
从使用 detach 方法附加的值中解除这个销毁器。
此销毁器与值之间的每个附加关系,是通过调用 attach 方法并使用 detach 对象作为 detach
参数创建的,将被移除。
如果销毁器多次附加到同一个值,并且使用不同的解除密钥,则只移除使用 detach 的附加。
解除后,如果对象变得不可访问,则附加不会触发任何回调。
示例
class Database {
// Keeps the finalizer itself reachable, otherwise it might be disposed
// before the finalizer callback gets a chance to run.
static final Finalizer<DBConnection> _finalizer =
Finalizer((connection) => connection.close());
final DBConnection _connection;
Database._fromConnection(this._connection);
void close() {
// User requested close.
_connection.close();
// Detach from finalizer, no longer needed.
// Was attached using this object as `detach` token.
_finalizer.detach(this);
}
// Some useful methods.
}
实现
void detach(Object detach);