Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse插件自动修复";Double==Double";声明?_Java_Eclipse_Plugins_Double_Equals - Fatal编程技术网

Java Eclipse插件自动修复";Double==Double";声明?

Java Eclipse插件自动修复";Double==Double";声明?,java,eclipse,plugins,double,equals,Java,Eclipse,Plugins,Double,Equals,我正在开发一个仅供个人使用的小API,它涉及很多数学问题。但是,我刚刚发现使用“double==double”返回false 所以,我的API使用了很多这些计算,我必须重新编写很多。但是,API现在有85000行代码,所以我认为这将是很多。。。有问题的重新手动写入 有没有Eclipse插件可以自动检测这些错误语句,如果可能的话,修复它们 谢谢 @其他信息: 我在测试所有数字类的一些方法时发现了这一点,当我测试Double时,我得到了: Number of type 'class java.lan

我正在开发一个仅供个人使用的小API,它涉及很多数学问题。但是,我刚刚发现使用“
double==double
”返回false

所以,我的API使用了很多这些计算,我必须重新编写很多。但是,API现在有85000行代码,所以我认为这将是很多。。。有问题的重新手动写入

有没有Eclipse插件可以自动检测这些错误语句,如果可能的话,修复它们

谢谢

@其他信息: 我在测试所有数字类的一些方法时发现了这一点,当我测试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原语。所以现在这对我来说是一个大问题。

这是检查两个对象是否相等与实际上是同一个对象之间的区别。我可以给你看两张照片,都是2002年本田雅阁轿车的金属蓝色(.equals()),但它们不一定是同一辆车的照片(=)。有两个值为3.2的双对象,但最终仍有两个对象


除了@nitind之外,这适用于所有对象,而不仅仅是数字。但是要回答您的问题:Eclipse帮不了您,因为==和equals()都是有效的,并且(取决于用例)都是正确的。不过,像Sonar和FindBugs这样的代码分析器可能可以帮助您找到它们。

您可以添加一些代码作为示例吗?例如,我在实体碰撞(在2D游戏引擎部分)甚至UI组件碰撞(在UI系统部分)上使用了一些“Double==Double”语句。如果您不使用任何双精度特定方法或空检查、空赋值,只需将变量从双精度更改为双精度,它就会正常工作。为什么您必须使用双精度类而不是双精度基元类型?顺便说一句,如果您的程序如您所说有“大量的数学知识,无论如何,您应该将Double更改为BigDecimal(如果您注意到正确的结果)