作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Hashmap
包含一个键,其值可以是 Integer
或 Double
。
如果值的类型为 Double
,则此方法有效,但对于 Integer
类型则失败:
Double value = (Double) locationMap.get("key");
不幸的是我似乎无法控制类型,因为它是从服务器传输的 JSON 数据。显然,即使数字在传输之前是服务器端(Javascript)的 double 类型,但没有十进制数字,它也会在沿线的某个地方被解释为 Integer在客户端(Java)。
考虑可能的Integer
值并将其转换为Double
的最短方法是什么?
最佳答案
假设您知道它是一个 Number
(例如,您首先使用 instanceof
进行测试):
Double value = ((Number) locationMap.get("key")).doubleValue();
如果数字已经是Double
,则效率很低。您可能需要定义一个方法来专门处理该问题:
// Doesn't handle null.
Double toDouble(Number n) {
return (n instanceof Double) ? (Double) n : Double.valueOf(n.doubleValue());
}
Double.valueOf
看起来多余,但如果使用条件表达式来避免第二个操作数 ( see this ) 拆箱,则这是必需的。
关于java - 如何将不同的数字类型转换为Double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55362823/
我是一名优秀的程序员,十分优秀!