Java 使用本地和舍入模式保存十进制格式的创建
我想创建一个带有本地(德语)和舍入模式(半向下)的NumberFormat实例,不带强制转换,也不带任何may unsave方法或强制转换 到现在为止我一直在做Java 使用本地和舍入模式保存十进制格式的创建,java,findbugs,Java,Findbugs,我想创建一个带有本地(德语)和舍入模式(半向下)的NumberFormat实例,不带强制转换,也不带任何may unsave方法或强制转换 到现在为止我一直在做 NumberFormat format = NumberFormat.getInstance(Locale.GERMAN); format.setRoundingMode(RoundingMode.HALF_DOWN); 但后来发现布格斯·纳格: DMI\u方法 在new Demo()中调用不支持的方法java.text.Number
NumberFormat format = NumberFormat.getInstance(Locale.GERMAN);
format.setRoundingMode(RoundingMode.HALF_DOWN);
但后来发现布格斯·纳格:
DMI\u方法
在new Demo()中调用不支持的方法java.text.NumberFormat.setRoundingMode(RoundingMode)
此方法调用的所有目标都抛出UnsupportedOperationException
除了将NumberFormat强制转换为十进制格式或禁用此警告之外,还有其他方法可以创建这样一个没有警告的实例吗?为什么不使用
DecimalFormat
,因为这是getInstance(…)
无论如何都会返回的结果?@Thomas-我没有找到用给定的本地值创建DecimalFormat的方法。-我可能忽略了什么吗?你是对的,NumberFormat.getInstance(locale)
使用一些内部类,如LocaleData
和DecimalFormatSymbols
来获取DecimalFormat
的参数,我不建议你自己处理这些参数。-但是,如果您使用某个固定的语言环境(比如德语),您也可以自己提供格式字符串。并非所有目标都抛出不支持的操作异常。