我想跟踪一个实例变量的值,我的断点从一个静态方法开始。我无法检查实例变量值。有没有办法做到这一点?我搜索了谷歌,但没有找到任何线索。
是因为无法在静态方法中访问实例吗?
我想跟踪一个实例变量的值,我的断点从一个静态方法开始。我无法检查实例变量值。有没有办法做到这一点?我搜索了谷歌,但没有找到任何线索。
是因为无法在静态方法中访问实例吗?
静态方法不能访问实例变量的值,根据定义,在创建对象实例之前,该变量是未定义的。
public class A {
private int b;
public static void foo() {
b = 1;
}
}
由于这个原因,不会编译。A 解决它以使 b 本身静态。当然,你应该明白将 b 设为静态是什么意思。这意味着无论给定 JVM 中存在多少类实例,都只有一个 b 实例。
您可以将要跟踪的变量传递给方法。尽管您每次执行此操作时只需做一个注释,以便在完成测试后将其删除。
但老实说,如果您无法从方法中访问变量,那么在您退出方法时它可能不会改变,除非您有多个线程。因此,您可以在调用方法之后/之前设置断点。