【问题背景】
当在Eclipse中断点调试循环的时候,如果循环次数过多时调试操作往往会很麻烦, 例如下面的循环, 循环处理中产品可能有几百个, 满足if条件的产品也有50+。为使断点调试更方便,可以通过Break Properties来精确定位断点
for (ProductDecorator productDecorator : productDecorators) {
if (productDecorator.getProduct() instanceof PhysicalProduct) {
PhysicalProduct physicalProduct = (PhysicalProduct) productDecorator.getProduct();
if (CodeType.SERIA.equals(physicalProduct.getResourceDirectory().getCodeType())
&& (Boolean.FALSE.equals(physicalProduct.getResourceDirectory().isAllowNotStock())
||ResourceTypeID.SIM.getId().equals(physicalProduct.getResourceDirectory().getResourceType().getId()))) {
physicalProductDecorators.add(productDecorator);
totalPhysicalProductDecorators.add(productDecorator);
} else {
otherProductDecorators.add(productDecorator);
}
}else {
otherProductDecorators.add(productDecorator);
}
}
【处理方式】
例如: 再第二个if条件中设置断点,并希望产品的资源等于 ResourceTypeID.EOC时断点生效,以便排查问题 如何做呢?
首先在第二个if条件中设置断点, 并邮件选择Break Properties
然后弹出面板中勾选Comditional,并在条件中设置希望的条件,产品的资源类型=EOC,如下图
Comditional下的条件如下, 当然自己使用的时候要写自己代码的判断条件
ResourceTypeID.EOC.getId().equals(physicalProduct.getResourceDirectory().getResourceType().getId())
最后,断点调试,当断点停顿时候产品产品, 此时的产品满足资源类型为EOC,如下图
是不是很方便, 希望对看到这篇文章的朋友有帮助