当从Kotlin迁移到Java时,我遇到了一个问题。我夸大了Object的finalize()方法:
@Override
protected void finalize() throws Throwable {
stopTimer();
super.finalize();
}当我试图对Kotlin做同样的事情时,我找到了解决方案。第一个是来自医生的:
protected fun finalize() {
stopTimer()
super.finalize()
}第二个来自文章 (俄文):
@Suppress("ProtectedInFinal", "Unused")
protected fun finalize() {
stopTimer()
super.finalize()
}但在这两种情况下,我都不能按照IDE调用super.finalize(),因为它说unresolved reference:finalize
也许有人知道如何在Kotlin中完成这项工作?谢谢。
发布于 2018-05-17 14:24:45
以下是finalize在Java中的契约:
类对象的finalize方法不执行特殊操作;它只是正常返回。对象的子类可以重写此定义。
因此,不需要调用超类。您将调用一个空的实现。
只有在类中才需要调用super.finalize(),而不是直接从kotlin.Any派生的类。
故事的其余部分已经在正式文件中讲述了:只需声明一个protected fun finalize()。
https://stackoverflow.com/questions/50393502
复制相似问题