gpt4 book ai didi

java - 创建 Double 来测试空检查时抛出空指针异常

转载 作者:行者123 更新时间:2023-12-02 05:01:54 26 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我有一个方法可以将 Doubles 或 BigDecimals 转换为格式化字符串:

//There is also a method that accepts BigDecimals
public String convertToCurrencyString(Double aAmount) {
if(aAmount == null){
return "$0.00";
}
NumberFormat numFormat = DecimalFormat.getCurrencyInstance(Locale.US);
numFormat.setMinimumFractionDigits(2);
String amount = numFormat.format(aAmount);
return amount;
}

我目前正在尝试通过实例化 Double 来使用 JUnit 测试此方法:

Double nullDouble = new Double(null);

问题是创建 Double 时抛出 NullPointerException。有没有办法阻止这种情况发生,或者这是正常行为?需要进行 null 检查是因为数据库中有一些较旧的记录将这些 Double 和 BigDecimal 设置为 null

最佳答案

new Double(null) 调用 Double(String) 构造函数,该构造函数尝试将给定字符串解析为 double 型。但对于 null 字符串,它会失败并出现 NullPointerException。

将 null Double 传递给方法的正确方法是简单地调用:

String resultForNull = convertToCurrencyString(null);

此外,由于您的方法不使用封闭类的状态,因此将其设为静态可能是有意义的。

关于java - 创建 Double 来测试空检查时抛出空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28194415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com