这可能是一个愚蠢的问题,但我有一个方法可以将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。有没有办法阻止这种情况发生,还是这种正常行为?空检查的必要性是数据库中有一些旧的记录将这些双打和BigDecimals设置为空
答案 0 :(得分:2)
new Double(null)
调用Double(String)
构造函数,它尝试将给定的字符串解析为double。但是使用null
字符串时,它会因NullPointerException而失败。
将null Double传递给方法的正确方法是简单地调用:
String resultForNull = convertToCurrencyString(null);
此外,由于您的方法不使用封闭类'状态,它可能是有道理的static
。