创建 Double 以测试空检查时抛出空指针异常

Null pointer exception thrown when creating a Double to test null check

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

//There is also a method that accepts BigDecimals
public String convertToCurrencyString(Double aAmount) {
    if(aAmount == null){
        return "[=10=].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。有没有办法阻止这种情况的发生,或者这是正常行为?空检查的需要是数据库中有一些较旧的记录将这些 Doubles 和 BigDecimals 设置为 null

new Double(null) 调用 Double(String) 构造函数,它试图将给定的字符串解析为双精度数。但是对于 null 字符串,它会因 NullPointerException 而失败。

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

String resultForNull = convertToCurrencyString(null);

此外,由于您的方法不使用封闭的 class' 状态,因此将其设为 static.

可能有意义