我正在开发一个仅供个人使用的小API,它涉及到很多数学。但是,我刚刚发现使用"double == double
",返回false。
所以,我的API使用了很多这样的计算,我必须重写很多。但是,API现在有85000行代码,所以我认为它会很多…有问题的……手动重写
有什么Eclipse插件可以自动检测这些错误的语句,如果可能的话,修复它们吗?谢谢。
@Additional信息:我在测试所有Number类的一些方法时发现了这一点,当我测试double时,我得到了:
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
。所以这对我来说是个大问题
除了@nitind -这适用于所有对象,而不仅仅是数字。但是要回答您的问题:Eclipse无法帮助您,因为==和equals()都是有效的并且(取决于用例)是正确的。但是,像Sonar和FindBugs这样的代码分析器可能能够帮助您找到这些错误。
这是检查两个对象是否相等与字面上是相同对象之间的区别。我可以给你看两张2002年本田雅阁轿车的照片,都是金属蓝色的(.equals()),但它们不一定是同一辆车的照片(==)。你有两个Double对象,值都是3.2,但最终你仍然有两个对象。
http://www.coderanch.com/t/409507/java/java/Difference-equals