GWT подписал ноль
В Java я могу различить 0D и -0D:
new Double("0").equals(new Double("-0")) // false
Но, похоже, это больше не работает после того, как GWT перевел мою Java на JavaScript. Я даже получаю false
в режиме разработки GWT, но true
в режиме GWT super-dev.
Я читал это в JavaScript
0.0 === -0.0 // true
но
Object.is(0, -0) // false
Как я могу заставить GWT использовать Object.is
Comparision? Или есть другое решение, чтобы проверить, получил ли я отрицательный или положительный ноль?
2 ответа
Решение
Хорошо, после еще одного исследования я нашел решение, использующее JSNI:
native boolean isNegative(double value)
/*-{
return 1 / value < 0;
}-*/;
Как 1/-0
производит -Infinity
в JavaScript этот работает.
Вы можете объявить новый метод, используя JSNI, который использует Object.is
:
public static native boolean compareDoubles(Double a, Double b) /*-{
return Object.is(a, b);
}-*/;