假设我们有一个带有方法onPoke(..)的抽象类。
abstract class BaseValuePanel{
void onPoke(int depth){
//blah, blah, ...
}
}
现在,我希望在onPoke(..)上放置一个断点,但只有在调用EstimationValuePanel类的对象时。
因为现在,如果我在onPoke(..)上放置一个断点,调试器将停止数千个实例(因为BaseValuePanel的广泛后代类),并且其中只有一个是由于EstimationValuePanel的调用。
我需要采用的断点设置的设置顺序或策略是什么,以便只允许调试器在EstimationValuePanel调用方法时停止。
我的虚拟断点是什么意思......:
也就是说,在Java而不是C#中,非私有,非静态(可覆盖)方法自然是虚拟的。因此,虚拟调用在这里。
答案 0 :(得分:9)
当然,您可以覆盖EstimationValuePanel类中的方法,并仅在那里设置断点。
但您也可以使用条件断点:转到方法onPoke()上的断点属性(右键单击或 Ctrl +双击)并选择“条件”。 在下面的文本区域中,您可以输入以下条件:
this instanceof EstimationValuePanel
这意味着每次输入方法时都会评估条件。因此,如果遇到性能问题,则应优先覆盖EstimationValuePanel中的方法。