如何:在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很好地提供了所有方法依赖项。现在我正在寻找一种干净的方法来处理字段。依赖项查找器可以这样做,只要字段不是最终字段。所以这就是我想我最终会做的。谢谢你的评论。