【问题标题】:Change kotlin val in debugger在调试器中更改 kotlin val
【发布时间】:2023-03-21 11:49:01
【问题描述】:

如何更改调试器中的val属性(不是方法变量)?

是的,我知道val 是最终模拟

断点在这里:

Set value 在上下文菜单中禁用:

评估不起作用:

【问题讨论】:

标签: android-studio debugging intellij-idea kotlin


【解决方案1】:

在调试器中选择值,使用右键单击上下文菜单选择“设置值...”(默认快捷键F2)。变量的值现在应该显示在文本字段中。输入所需的值,然后按 Enter 键更改值。您只需要输入值而不是赋值(例如x = "test" 是错误的,只需输入值"test")。更改后的值现在应用于该字段。

在调试器中,也可以更改 Kotlin 中不可变 val 定义值的值,因为也可以更改 Java 中 final 定义变量的值。

【讨论】:

  • 谢谢,但这不适用于 val 属性。我更新问题
  • 不,val 不可能
【解决方案2】:

您可以使用反射来做到这一点。
只需打开“评估表达式”菜单,然后输入:
val field = Main::class.java.getDeclaredField("b")
field.isAccessible = true
field.set(b, true)

【讨论】:

    【解决方案3】:

    我能够使用“评估和记录”即时修改val 值。 检查完整answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      相关资源
      最近更新 更多