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);