我正在开发一个仅供个人使用的小型API,它包含了很多数学。但是,我发现使用“double == double
”会返回false。
所以,我的API使用了很多这些计算,我必须重写它。但是,API现在有85,000行代码,所以我认为它会很多......有问题...手动重写它。
是否有用于自动检测这些错误语句的Eclipse插件,如果可能,还要修复它们?
感谢。
@Additional info: 我在使用所有Number类测试一些方法时发现了这一点,当我测试双打时,我得到的是:
Number of type 'class java.lang.Double':
First value: 3.2
Second value: 3.2
first == second: false
first != second: true
second == first: false
second != first: true
first equals second: true
second equals first: true
我总是使用Number
类,几乎从不raw primitives
。所以现在对我来说这是一个很大的问题。
答案 0 :(得分:1)
检查两个对象是否相等与字面上是同一个对象之间的区别。我可以给你看两张包含2002年本田雅阁轿车金属蓝(.equals())的照片,但它们不一定是同一辆车的照片(==)。你有两个Double对象,其值为3.2,但最终你仍然有两个对象。
http://www.coderanch.com/t/409507/java/java/Difference-equals
答案 1 :(得分:1)
除了@nitind之外 - 这适用于所有对象,而不仅仅是数字。但回答你的问题:Eclipse无法帮助你,因为==和equals()都是有效的,并且(取决于用例)是正确的。但是Sonar和FindBugs等代码分析器可能会帮助您找到这些分析器。