Tag: 敲定

如何在kotlin中实现finalize()?

今天,我在Closeable中实现了一个Closeable ,就像过去我在java中所做的一样,我想实现一个finalize()作为最后的手段,以防客户端代码忘记关闭它,渲染关键资源未被回收。 尽管这种后备不可靠,我认为这个资源足够重要,可以增加这个后备。 但是, kotlin.Any没有声明一个finalize方法,这意味着我不能简单地这样做: class Resource: Closeable { fun close() {} override fun finalize() { close()} } 这不好,至少不是应该的。 现在我回到普通的Java作为一种解决方法。 有谁知道如何在纯Kotlin中做到这一点? PS:我目前的解决方法: FinalizedCloseable.java: public abstract class FinalizedCloseable implement Closeable { @Override protected void finalize() { close(); } } 科特林: class Resource: FinalizedCloseable(), Closeable { fun close() {} override fun finalize() { close()} } 但是这个解决方法需要一个超类。 如果下一次我的其他Resource已经有一个超类,这个解决方法不会没有很多样板。 […]