2016-08-09 2 views
0

Я пытаюсь исправить ошибки запрещенной функции apis. У меня была ошибка, которая говорит:Форматирование форматирования MessageFormat без значения по умолчанию

[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)); 

Однако ошибка все еще существует. Как я могу это исправить?

ответ

0

Ни одна из статических реализаций MessageFormat.format() не принимает Локаль в качестве аргумента, особенно в качестве последнего аргумента, поскольку это будет мешать подписи Object ...; единственный способ установить локаль в конструкторе, поэтому, если вы хотите использовать метод static format(), вам придется «свернуть свой» где-нибудь с кодом, подобным этому:

public static String format(Locale loc, String pattern, Object ... arguments) 
{ 
    MessageFormat temp = new MessageFormat(pattern, loc); 
    return temp.format(arguments); 
} 
Смежные вопросы