【发布时间】:2017-06-07 13:34:42
【问题描述】:
我在一些只返回输入的 Javascript 中传递 Integer.MIN_VALUE。但是,似乎当我使用ScriptValueConverter.unwrapValue(returnedObject) 比较 Javascript 的结果时,值是相同的,但类型是双精度,而我期望的是整数。
但是,当我传入 Integer.MAX_VALUE 时,我确实得到了一个整数。
据我了解,Nashorn 使用乐观类型转换,所以在我看来,MIN_VALUE 仍然可以是 int,不需要它是 double
【问题讨论】:
-
但是 Nashorn 不需要返回
Integer。也许它在一个点上分别存储值和签名,因此,不能在那里将Integer.MAX_VALUE表示为int,也许下次更新会改变,谁知道呢? -
可能是错字,您的意思是 Integer.MIN_VALUE 吗?我知道它不需要返回一个整数,但这有点不寻常,不是吗,如果 Nashorn 使用乐观类型转换,MIN_VALUE 显然仍然可以表示为 int 但 Nashorn 选择使用 double,这与如何它处理 MAX_VALUE
-
是的,我的意思是,
Integer.MIN_VALUE不能表示为“int幅度和符号”。有时,试图处理这两种情况的代码会出现这样的问题。非直观的解决方案是在处理过程中将值表示为“大小和符号的否定”。不是每个人都这样做。