【问题标题】:Java List list to String []Java List 列表到 String []
【发布时间】:2012-03-23 12:46:27
【问题描述】:

如何转换

List list= new ArrayList();

String [] profArr= {};

我试过了

profArr = list.toArrary() 

    and

profArr = (String [])list.toArrary()

我收到以下错误:

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

我也试过

String [] profArr= (String [])list.toArray(new String[0]);

我收到此错误:请求的资源 () 不可用。

这是我创建列表的方式:

static List decode(int x)
    {
        List power2List = new ArrayList();
        if (x < 0) 
            throw new IllegalArgumentException("Decode does not like negatives");
        while (x > 0)
        {
            int p2 = Integer.highestOneBit(x);
            x = x - p2;
            power2List.add(p2);
        }
        return power2List;   
    }

List list= new ArrayList();
list= decode(rset.getInt("favprofs")); //rset being a result set which pulls one int

【问题讨论】:

  • 您的原始清单是什么?是否实现了toString() 方法?
  • 有关“请求的资源 () 不可用”的消息。与此代码无关;有一次发生了一件奇怪的事情。
  • 你也试过 list.toArray(new String[0])

标签: java string list arraylist


【解决方案1】:

您需要使用list.toArray(new String[list.size()])Object[] 的类型与 String[] 不兼容,尽管 Object[] 中的每个元素都是 String。此外,您应该考虑指定 List 的类型参数以保持类型安全。

【讨论】:

  • 我得到:请求的资源()不可用。嗯,我想知道是否还有其他问题
  • @user975044 没有看到更多的代码或完整的错误消息,我只能假设还有其他问题。
【解决方案2】:

基本上你需要使用

String profArr = list.toArray( (size))

【讨论】:

  • 这段代码甚至无法编译。 list.toArray 返回一个数组,而不是 String
  • 我的意思是这个似乎已经作为答案提供了 list.toArray(new String[list.size]) 在我的情况下
猜你喜欢
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多