我只是在玩 MessageFormat ,但是当我尝试将字符串传递给MessageFormat 格式方法时,它编译得很好,但后来我得到了一个运行时转发异常。这是代码。
MessageFormat format = new MessageFormat("");
Object obj = Integer.toHexString(10);
format.format(obj);
现在我得到的运行时异常如下。
线程“main”中的异常java.lang.ClassCastException:java.lang.String无法强制转换为[Ljava.lang.Object; at java.text.MessageFormat.format(Unknown Source) at java.text.Format.format(Unknown Source) 在JavaCore2.Codepoint.main(Codepoint.java:21)
答案 0 :(得分:6)
MessageFormat.format()
采用类型Object[]
(Object
数组)的参数,而您传递的是Object
。
您必须使用Integer
创建一个数组:
MessageFormat format = new MessageFormat("{0}");
Object[] args = { Integer.toHexString(10) };
String result = format.format(args);