日期:2014-05-20  浏览次数:21012 次

对象数组转型转化为字符串数组异常问题
String[] _ids_0 = (String[])(actionContext.getObj("ids")); 

以上actionContext.getObj("ids")返回的是一个String数组 String[]

但却是报异常:
ClassCastException:无法将 java.lang.Object[2] (id=384) 强制转换为 java.lang.String[]

请问如何解决?

------解决方案--------------------
说明它确实是个Object数组,不然你直接显示下actionContext.getObj("ids").getClass() 看看?

虽然它的元素是String,但数组是个Object数组,自己做转换吧。
------解决方案--------------------

Java code

Object[] a = {"123", "abc", "ABC"};

String[] res = new String[a.length];
for(int i=0;i<a.length;i++)
  res[i] = (String)a[i];

------解决方案--------------------
actionContext.getObj("ids") 返回的是object的数组。。。。转成string的 String[] res = new String[actionContext.getObj("ids").length];
for(int i=0;i<actionContext.getObj("ids").length;i++)
res[i] = (String)actionContext.getObj("ids")[i];


------解决方案--------------------
String s = actionContext.getObj("ids");
String[] ss = s.spilt(",");

就可以了!!