GWT签名为零



在Java中,我可以区分0D和-0D:

new Double("0").equals(new Double("-0")) // false

但显然,在GWT将我的Java转换为JavaScript之后,这似乎不再有效。我什至在 GWT 开发模式下得到false,但在 GWT 超级开发模式下true

我已经在JavaScript中读过

0.0 === -0.0 // true

Object.is(0, -0) // false

如何强制 GWT 使用Object.is比较?或者有没有其他解决方案来检查我是否得到负零或正零?

您可以使用使用

JSNI 声明一个新方法,该方法使用 Object.is

public static native boolean compareDoubles(Double a, Double b) /*-{
    return Object.is(a, b);
}-*/;

好的,经过更多的研究,我想出了一个使用 JSNI 的解决方案:

native boolean isNegative(double value)
/*-{
    return 1 / value < 0;
}-*/;

正如1/-0在JavaScript中生成-Infinity一样,这个可以工作。

相关内容

  • 没有找到相关文章

最新更新