我正在尝试修复禁止的api错误。我有一个错误说:
[forbiddenapis] Forbidden method invocation: java.text.MessageFormat#format(java.lang.String,java.lang.Object[]) [Uses default locale]
[forbiddenapis] in org.a.b.MyClass (MyClass.java:813)
指出:
logger.debug(MessageFormat.format("Added {0} documents", new Object[] { new Integer(count) }));
因此,我将其更改为:
logger.debug(MessageFormat.format("Added {0} documents", new Object[] { new Integer(count) }, Locale.ROOT));
但是,错误仍然存在。我该如何解决?
最佳答案
静态MessageFormat.format()实现都不接受Locale作为参数,尤其是最后一个参数,因为它会干扰Object ...签名;设置语言环境的唯一方法是在构造函数中,因此,如果您热衷于使用静态format()方法,则必须使用类似于以下代码的方式“自行滚动”:
public static String format(Locale loc, String pattern, Object ... arguments)
{
MessageFormat temp = new MessageFormat(pattern, loc);
return temp.format(arguments);
}
关于java - 没有默认语言环境的MessageFormat格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38857783/