Hor*_*ux7 7 java eclipse ide reference synchronized
使用Eclipse,可以找到方法,成员或类的所有引用.是否也可以找到同步监视器的所有引用?
如果Eclipse无法实现这一点,那么可以使用另一个Java IDE吗?
我的问题是监视器对象有很多引用.搜索所有引用将返回许多结果.我只会看到与此对象同步的位置.
编辑:我添加一个样本我的意思:
public class LockClass{
public synchronized void add(Object any){
}
}
public class AnyOther{
private LockClass lock;
public AnyOther(LockClass lock){
this.lock = lock;
}
public void doSomethings(){
synchronized(lock){
//...
}
}
Run Code Online (Sandbox Code Playgroud)
现在我希望所有使用LockClass作为监视器的同步搜索.这是一个静态分析.在我的样本中,我想找到:
让我们弄清楚一些术语:
代码中哪里引用了监视器?
Suraj 已经描述了如何做到这一点:Search > References > Workspace...。您还可以将这些引用过滤为仅读取访问、写入访问、实现者等。此类引用是通过静态代码分析找到的,因此无需运行应用程序。但是,这不会自动检测将对对象的引用分配给字段,然后将其分配给另一个变量的情况。这仅检测对该对象的特定引用的引用。
哪些变量指向监视器?
这将处理多个字段/局部变量引用该对象的情况。为此,应用程序必须正在运行。您需要将断点放置在监视器可见的适当位置(最简单的方法是使用相关监视器的同步块周围的某个位置)。变量视图将显示当前范围内可用的所有变量。您可以通过在“变量”视图中选择对对象的引用,打开上下文菜单并选择 来获取对对象的所有引用All References...。这将显示引用该对象的所有字段/局部变量。