Java 使用本地和舍入模式保存十进制格式的创建

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实例,不带强制转换,也不带任何may unsave方法或强制转换

到现在为止我一直在做

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
的参数,我不建议你自己处理这些参数。-但是,如果您使用某个固定的语言环境(比如德语),您也可以自己提供格式字符串。并非所有目标都抛出不支持的操作异常。