2016-08-09 8 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 ...シグネチャを妨害するためです。ロケールを設定する唯一の方法はコンストラクタにあります。静的なformat()メソッドを使用したい場合は、次のようなコードで別の場所にロールバックする必要があります:

public static String format(Locale loc, String pattern, Object ... arguments) 
{ 
    MessageFormat temp = new MessageFormat(pattern, loc); 
    return temp.format(arguments); 
}