Kotlin伴生对象字段调试问题:无法查看index值如何解决?
解决Kotlin伴生对象字段调试无法查看的问题
这个问题我之前也碰到过!本质原因是Kotlin的伴生对象默认会被编译成一个名为Companion的静态内部类,你声明的index字段其实是这个内部类的实例成员,而非Java风格的静态字段。很多调试器默认不会自动展开这个Companion实例,所以你看不到index的数值。
这里有两个实用的解决办法:
方法一:给字段添加@JvmStatic注解
这是最直接的方案,加了这个注解后,Kotlin会把index编译成真正的Java静态字段,调试器就能直接识别并显示它的值了。修改后的代码如下:
class ProgramStructure { companion object { @JvmStatic var index = 0 fun inc(){ index++ } } }
方法二:手动在调试器中查看Companion实例
如果不想修改代码,你可以在调试窗口里手动找到ProgramStructure.Companion这个实例,展开它就能看到index的当前值了。不过这种方式每次调试都要手动操作,不如加注解来得方便。
另外要注意,不同IDE(比如IntelliJ IDEA、Android Studio)的调试界面布局可能略有不同,但核心逻辑是一致的——要么让字段变成真正的静态字段,要么找到伴生对象的实例去查看成员。
内容的提问来源于stack exchange,提问作者nirKa
相关产品推荐
相关产品推荐

