2012-03-06 35 views
0

我將如何轉換Java列表清單爲String []

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 
+0

什麼是你原來的清單?它是否實現了'toString()'方法? – 2012-03-06 02:07:44

+0

有關「請求的資源()」的消息不可用。「與此代碼無關;有一次奇怪的事情發生了。 – 2012-03-06 02:08:35

+0

也有你試過list.toArray(new String [0]) – 2012-03-06 02:09:45

回答

8

您需要使用list.toArray(new String[list.size()])Object[]String[]類型不兼容,儘管Object[]中的每個元素都是String。另外,您應該考慮指定List的類型參數以保持類型安全。

+0

我得到:請求的資源()不可用。嗯,我不知道是否有其他錯誤然後 – user975044 2012-03-06 02:18:14

+0

@ user975044沒有看到更多的代碼或完整的錯誤信息,我只能假設別的是錯的。 – Jeffrey 2012-03-06 02:19:54

0

基本上你需要使用

String profArr = list.toArray(< String array > (size))

+0

這段代碼甚至不會編譯。 'list.toArray'返回一個數組,而不是'String'。 – 2012-03-06 02:09:10

+0

我的意思是這似乎已經提供了一個答案list.toArray(new String [list.size]),其中在我的情況 2012-03-06 02:10:19