0

我想跟踪一个实例变量的值,我的断点从一个静态方法开始。我无法检查实例变量值。有没有办法做到这一点?我搜索了谷歌,但没有找到任何线索。

是因为无法在静态方法中访问实例吗?

4

2 回答 2

0

静态方法不能访问实例变量的值,根据定义,在创建对象实例之前,该变量是未定义的。

public class A {

  private int b;

  public static void foo() {
    b = 1;
  }
}

由于这个原因,不会编译。A 解决它以使 b 本身静态。当然,你应该明白将 b 设为静态是什么意思。这意味着无论给定 JVM 中存在多少类实例,都只有一个 b 实例。

于 2013-04-20T01:43:08.737 回答
0

您可以将要跟踪的变量传递给方法。尽管您每次执行此操作时只需做一个注释,以便在完成测试后将其删除。

但老实说,如果您无法从方法中访问变量,那么在您退出方法时它可能不会改变,除非您有多个线程。因此,您可以在调用方法之后/之前设置断点。

于 2013-04-20T01:42:51.070 回答