Java 创建双精度测试空检查时引发空指针异常

Java 创建双精度测试空检查时引发空指针异常,java,unit-testing,junit,junit4,Java,Unit Testing,Junit,Junit4,这可能是一个愚蠢的问题,但我有一个方法可以将double或bigdecimal转换为格式化字符串: //There is also a method that accepts BigDecimals public String convertToCurrencyString(Double aAmount) { if(aAmount == null){ return "$0.00"; } NumberFormat numFormat = DecimalFor

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

//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。有没有办法阻止这种情况发生,或者这是正常的行为?空检查的需要是,数据库中有一些较旧的记录将这些双精度和大小数设置为空

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

向方法传递null Double的正确方法是调用:

String resultForNull = convertToCurrencyString(null);

另外,由于您的方法不使用封闭类的状态,因此将其设置为
静态

双nullDouble=null
?正如我所怀疑的,这是一个愚蠢的问题。只是出于好奇,为什么我的初始双抛出一个空指针?啊,我明白了,谢谢你的解释