在Java中将对象转换为数组

Raf*_*fay 1 java arrays casting

可能重复:
如何在Java中将对象数组转换为字符串数组

我收到一个Object并将其转换为String数组,如下所示:

Object values[] = (Object[])request.getSession().getAttribute("userList");
String[] tmp = new String[values.length];
for(int i = 0; i < tmp.length; ++i) {
     tmp[i] = (String) values[i];
     out.println(tmp[i]);
}
Run Code Online (Sandbox Code Playgroud)

有没有更好,更清洁的方法来做到这一点?

Juv*_*nis 5

为什么不直接铸造?

String values[] = (String[])request.getSession().getAttribute("userList");
Run Code Online (Sandbox Code Playgroud)

  • 为什么不?因为`java.lang.ClassCastException`也许?尝试`String [] arr =(String [])(new Object [] {"a","b","c"});` (2认同)
  • 因为[`HttpSession.getAttribute(...)`的返回类型是`Object`](http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpSession.html#getAttribute( java.lang.String)) 不是`Object[]`。 (2认同)