diff --git a/api/@ohos.util.d.ts b/api/@ohos.util.d.ts index 68a7d5896561e055b90bbf1db48f22d7df05013b..3d6a0cef6aae02af4a4cbbbde3532ef97ff5849c 100644 --- a/api/@ohos.util.d.ts +++ b/api/@ohos.util.d.ts @@ -4945,5 +4945,49 @@ declare namespace util { */ end(chunk?: string | Uint8Array): string; } + /** + * Provides an interface that can be implemented for releasing a resource + * which is managed by developers through a developer-defined callback. + * + * @interface AutoFinalizer + * @syscap SystemCapability.Utils.Lang + * @crossplatform + * @atomicservice + * @since 22 + */ + interface AutoFinalizer { + /** + * The developer-defined callback used to release resources. + * + * @param { T } heldValue - The value to pass to the finalizer. + * @syscap SystemCapability.Utils.Lang + * @crossplatform + * @atomicservice + * @since 22 + */ + onFinalization(heldValue: T): void; + } + /** + * A cleaner for releasing resources managed by developers through a developer-defined callback. + * + * @syscap SystemCapability.Utils.Lang + * @crossplatform + * @atomicservice + * @since 22 + */ + class AutoFinalizerCleaner { + /** + * Register objects that release resources managed by developers. + * + * @param { AutoFinalizer } obj - The object is registered to the cleaner. + * @param { T } heldValue - The value to pass to the finalizer. + * @static + * @syscap SystemCapability.Utils.Lang + * @crossplatform + * @atomicservice + * @since 22 + */ + static register(obj: AutoFinalizer, heldValue: T): void; + } } export default util;