如何在Kotlin本机中修改单例对象

时间:2019-06-07 13:50:47

标签: kotlin kotlin-native

我正在将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都无法提供类似的运行时异常。

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

1 个答案:

答案 0 :(得分:0)

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

相关问题