操作方法:在Java中查找对Field的所有引用

时间:2009-10-01 20:30:25

标签: java reflection

假设我有以下课程:

class A {
  static public String a;
}

class B {
  public function referToFieldInClassA() {
    System.out.println(A.a);
  }
}

Java反射API中是否有任何内容可以让我找到引用特定字段的所有位置?我正在寻找的方法是找出(给出例子)B类引用A.a。

我知道我可以通过反射API获取类中的所有字段。但是现在我想找到对该字段的所有引用。

感谢。

2 个答案:

答案 0 :(得分:2)

从标准API来看,我认为答案是否定的。 Eclipse可以做到,但那不是在运行时。

对于一种令人难以置信的黑客行为方式,获取ClassLoader对象,获取resourceAsStream以获取某些内容,使用JODE之类的内容对其进行反编译,并从程序内部解析源代码。

但这是一项疯狂的工作。你用它做什么了?

答案 1 :(得分:1)

如果您的需求是编译时而不是运行时,并且您没有IDE,那么更改字段名称并重新编译以及搜索无法编译的旧技巧。 ]

然后,当然,给自己一个IDE。