【问题标题】:Casting Object to Array in Java [duplicate]在Java中将对象转换为数组[重复]
【发布时间】:2012-12-24 02:37:06
【问题描述】:

可能重复:
How to convert object array to string array in Java

我正在接收一个对象并将其转换为一个字符串数组,如下所示:

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]);
}

有没有更好更干净的方法来做到这一点?

【问题讨论】:

  • 当你调用 setAttribute() 如果你传递一个 String[] 时,你可以直接转换成那个,而不是使用一个对象数组作为代理
  • @TritonMan - 这应该是一个答案。

标签: java arrays casting


【解决方案1】:

为什么不直接投射?

String values[] = (String[])request.getSession().getAttribute("userList");

【讨论】:

  • 为什么不呢?因为java.lang.ClassCastException 也许?试试String[] arr = (String[])(new Object[]{"a", "b", "c"});
  • @RichardJPLeGuen 如果 getAttribute() 正在返回 Object[] 为什么还要将其转换为 Object[] ?
  • 注意:Object arr = (Object)(new Object[]{"a", "b", "c"}); 不会抛出异常。
  • @RichardJPLeGuen 但我们关心的是 Object[] x = (Object[]) obj;,你的例子是无意义的。
猜你喜欢
  • 1970-01-01
  • 2013-02-16
  • 2017-08-11
  • 1970-01-01
  • 2015-04-23
  • 2021-04-27
  • 1970-01-01
相关资源
最近更新 更多