在Java中,我们可以通过以下方法销毁Singleton对象。

public class MySingleton {
      private static MySingleton ourInstance = null;

  private MySingleton() {
  }

  public static MySingleton getInstance() {
      if(ourInstance == null)
          ourInstance = new MySingleton();
      return ourInstance;
  }

  private void destroy(){
      ourInstance = null;
  }
}

因此,构造函数将在下次调用。

同样,如何销毁Kotlin Singleton对象。
object CacheManager{

  init {
     //some operations
  }

  fun destroy(){
      //How to destroy?
  }

}

我需要销毁Object并再次调用init块。
我怎样才能做到这一点?

最佳答案

这在Kotlin中是不可能的。对象不具有被破坏的概念。如果需要这种可能性,则不应使用object,而应使用常规的class并手动实现销毁逻辑,这与您在Java中的操作类似。

10-06 14:32