【问题标题】:How to modify the singleton object in kotlin native如何在 kotlin native 中修改单例对象
【发布时间】:2019-06-07 13:50:47
【问题描述】:

我正在向一些现有库添加 Kotlin 原生 linuxX64 目标支持。库已成功编译,但在运行测试用例时,出现以下运行时错误:

kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen kotlin.Array@1249428
    at kfun:kotlin.Exception.<init>(kotlin.String?)kotlin.Exception (0x271205)
    at kfun:kotlin.RuntimeException.<init>(kotlin.String?)kotlin.RuntimeException (0x2711c5)
    at kfun:kotlin.native.concurrent.InvalidMutabilityException.<init>(kotlin.String)kotlin.native.concurrent.InvalidMutabilityException (0x272595)
    at ThrowInvalidMutabilityException (0x3b0b53)
    at  (0x3b5733)

即使是 Kotlin 语言教程中给出的 Object example 也无法提供类似的运行时异常。

我知道问题出在冻结的物体上。但是我找不到修改单例对象的冻结成员的正确方法。

【问题讨论】:

    标签: kotlin kotlin-native


    【解决方案1】:

    经过一番搜索,我得到了答案。我们可以使用Atomic Reference 更新冻结的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 2019-10-10
      • 2020-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多