对String[] x的声明,放到try上面。

解决方案 »

  1.   

    Object[] x = a.toArray(new Object[a.size()]);
      

  2.   


    我改了一下,不能编译,可能是我没有改对,请再说明一下。
    import java.util.*;
     
    public class Test
    {
        public static void main(String[] args)
        {
            Collection<Object> a = new ArrayList<Object>();
            a.add("abc");
            a.add(1234);
            a.add(256.00);
            a.add("fff");  
              
             String[] x;                 
            try
            {
                x = a.toArray(new String[a.size()]); 
            }
            catch(Exception e)
            {
                for(int i=0; i<x.length; i++)
                {
                    System.out.println(x[i]);    
                }    
            }            
             
        }    
    }
      

  3.   


            Object[] x = a.toArray(new Object[a.size()]);
            String[] xx = new String[x.length];
            for (int i = 0; i < x.length; i++) {
                xx[i] = x[i].toString();
            }
      

  4.   

    Collection<Object> a = new ArrayList<Object>();
    a.add("abc");
    a.add(1234);
    a.add(256.00);
    a.add("fff");    
    String[] x = new String[a.size()];          
    try
    {
       x = a.toArray(x); 
    }
    catch(Exception e)
    {
    //e.printStackTrace();
        for(int i=0; i<x.length; i++)
        {
            System.out.println(x[i]);    
        }    
    }
      

  5.   


    怎么输出后是
    不是应该四个都有输出才对?怎么后面都变成null了?
      

  6.   

    7楼的方法应该也行,不知为什么是那样的输出。书上的公式是<T> T[] toArray(T[] arrayToFill),感觉7楼的方法很符合这个公式,为什么会有null输出?
      

  7.   

    对String[] x的声明,放到try上面。
      

  8.   


    怎么输出后是
    不是应该四个都有输出才对?怎么后面都变成null了?a.add("abc"); //String
    a.add(1234); //Integer
    a.add(256.00); //Float
    a.add("fff");  //StringYou should make sure all the elements in the array are "String" type.