我正在尝试通过使用NumberUtils.createLong函数将String转换为Long。
如Doc中所述,如果我们传递null值,则它将返回null。但是,但是我得到输入字符串“ null”的NumberFormatException。下面是我用来调用createLong函数的代码段。
NumberUtils.createLong("null") and
NumberUtils.createLong(null)
请帮助我修复此异常。
谢谢。
答案 0 :(得分:2)
文档说
如果字符串为
{ field: "Amount", title: "Amount", format: "{0:c}", width: 50 },
,则返回null
您没有通过null
,而是通过了null
。那是完全不同的事情。
"null"
答案 1 :(得分:0)
您通过将字符串null括在双引号中来发送它。而是发送null。
答案 2 :(得分:0)
NumberUtils.createLong("null")
失败,因为"null"
不像"0"
那样是数字。
NumberUtils.createLong(null)
如果失败,则API设计人员希望您自行决定如何处理空值。这是一个很好的决定,因为对null值的隐式假设会引起很多麻烦,并且很难发现错误。
做出自己的决定,例如:
final Long x;
if (numberAsString == null)
x = 0; // or null, although I'd see this as bad style.
else
x = NumberUtil.createLong(numberAsString);
此示例不适用于numberAsString
包含任何与实际long值不相似的文本的情况。