从String转换为Object时出现ClassCastException ..为什么?

时间:2011-05-31 15:03:19

标签: exception casting classcastexception

我只是在玩 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)

1 个答案:

答案 0 :(得分:6)

MessageFormat.format()采用类型Object[]Object数组)的参数,而您传递的是Object

您必须使用Integer创建一个数组:

MessageFormat format = new MessageFormat("{0}");
Object[] args = { Integer.toHexString(10) };

String result = format.format(args);