java – Eclipse Debugger不会在条件断点处停止
发布时间:2020-12-15 04:31:15 所属栏目:Java 来源:网络整理
导读:我在 Eclipse中有这个Java代码,我想调试. 这是代码: public Double repulsion(Node n1,Node n2) { Double rep = 0.0; rep = Math.pow(K,2) / distEuc(n1,n2); System.out.println("Répulsion : " + rep); listForcesRep.add(rep); return rep;} private Do
|
我在
Eclipse中有这个Java代码,我想调试.
这是代码: public Double repulsion(Node n1,Node n2) {
Double rep = 0.0;
rep = Math.pow(K,2) / distEuc(n1,n2);
System.out.println("Répulsion : " + rep);
listForcesRep.add(rep);
return rep;
}
private Double distEuc(Node n1,Node n2) {
Double d = 0.0;
Object[] n1Attributes = n1.getAttribute("xy");
Double x1 = (Double) n1Attributes[0];
Double y1 = (Double) n1Attributes[1];
Object[] n2Attributes = n2.getAttribute("xy");
Double x2 = (Double) n2Attributes[0];
Double y2 = (Double) n2Attributes[1];
d = Math.sqrt((Math.pow(x1 - x2,2) + Math.pow(y1 - y2,2)));
return d;
}
我在一行切换了一个断点:rep = Math.pow(K,2)/ distEuc(n1,n2);我运行调试器的默认值,它工作正常. 问题是,在某些时候,rep变量采用值NaN,我需要一个条件断点才能理解原因. 我像这样设置条件断点:
但是当我运行调试时,它会跳过断点并继续循环. 我做错了什么?我该如何解决? 谢谢! 解决方法
那是因为在该行中rep仍然等于0.0:Double rep = 0.0;
在计算rep值之后,你需要在System.out.println(“Répulsion:”rep);中放置一个条件断点,然后当执行在该行停止时,你“Drop to Frame”再次执行该方法. 您还应该使用Double.isNaN(rep)或rep.isNaN()而不是rep == Double.NaN. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

