Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何:在Java中查找对字段的所有引用_Java_Reflection - Fatal编程技术网

如何:在Java中查找对字段的所有引用

如何:在Java中查找对字段的所有引用,java,reflection,Java,Reflection,假设我有以下课程: class A { static public String a; } class B { public function referToFieldInClassA() { System.out.println(A.a); } } Java反射API中是否有任何东西允许我查找引用特定字段的所有位置?我要寻找的是一种方法来发现(给定示例)B类引用了a.a 我知道我可以通过反射API获得类中的所有字段。但现在我想找到所有对该字段的引用 谢谢。从标准API来

假设我有以下课程:

class A {
  static public String a;
}

class B {
  public function referToFieldInClassA() {
    System.out.println(A.a);
  }
}
Java反射API中是否有任何东西允许我查找引用特定字段的所有位置?我要寻找的是一种方法来发现(给定示例)B类引用了a.a

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


谢谢。

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

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


但这是一个疯狂的工作量。你到底在用它干什么?

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

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


但这是一个疯狂的工作量。你到底在用它干什么?

如果你需要的是编译时而不是运行时,而且你没有IDE,那就是更改字段名称、重新编译以及搜索无法编译的内容的老把戏


然后,当然,为自己准备一个IDE。

如果您需要的是编译时而不是运行时,并且您没有IDE,那么这就是更改字段名称、重新编译以及搜索无法编译的内容的老把戏


然后,当然,为自己准备一个IDE。

您是否尝试过您的IDE,或者您真的希望在运行时获得这些信息?您是否尝试过您的IDE,或者你真的想在运行时获取这些信息?我怀疑这是因为他想通过更改对getter/setter的直接访问来封装字段,而没有意识到大多数IDE都会自动完成这一操作。谢谢你的评论。实际上,我已经远远超出了IDE所能为我做的。我正在构建应用程序的依赖关系图,并将其存储在关系数据库中,以便可以脱机分析依赖关系。因此,这就像是接受IDE为我做的事情,并将输出保存到数据库中。我使用DependencyFinder很好地提供了所有方法依赖项。现在我正在寻找一种干净的方法来处理字段。依赖项查找器可以这样做,只要字段不是最终字段。所以这就是我想我最终会做的。谢谢你的评论。我怀疑这是因为他想通过改变对getter/setter的直接访问来封装一个字段,而没有意识到大多数IDE都会自动这样做。谢谢你的评论。实际上,我已经远远超出了IDE所能为我做的。我正在构建应用程序的依赖关系图,并将其存储在关系数据库中,以便可以脱机分析依赖关系。因此,这就像是接受IDE为我做的事情,并将输出保存到数据库中。我使用DependencyFinder很好地提供了所有方法依赖项。现在我正在寻找一种干净的方法来处理字段。依赖项查找器可以这样做,只要字段不是最终字段。所以这就是我想我最终会做的。谢谢你的评论。