(String[])m.keySet().toArray();
这里有问题吧?它返回的是Object[],即使里面全是String,也不能转为String[].就用Object[]吧:
Object[] para = m.keySet().toArray();

解决方案 »

  1.   

    public static void CodeGenarate(Map m){
    Object o[] = m.keySet().toArray();
    int j = o.length;
    String para[] = new String[j];
    for(int i=0;i<j;i++) {
    para[i] = o[i].toString();
    }
        List Lt = new LinkedList();
        Arrays.sort(para);  //对para[]进行排序
        Lt = Arrays.asList(para);
        ListIterator li = Lt.listIterator();
        System.out.println(li.hasNext());
        while(li.hasNext())  //求字符串明文
        {
          System.out.println(m.get(li.next()));
        }
    }
    我改了一下,主要是因为(String[])Object[]这种类型转换不允许造成的,用了个for来赋值,不知道有没有什么更优雅的方式来实现
      

  2.   

    Arrays.sort(Object[]);也对^-^
    只是不知道有什么好办法可以把Object[]转换成String[]?
      

  3.   

    String []str=new String[0];
    String[] para = (String[])m.keySet().toArray(str);
      

  4.   

    String []str=new String[0];
    String[] para = (String[])m.keySet().toArray(str);好像不行吧,就像这样:
    Object[] o = {"dfd","dwd"};
    String s[] = new String[0];
    s = (String[])o;
    是错误的
      

  5.   

    知道了,用System.arraycopy
    Object[] o = {"dfd","dwd"};
    String s[] = new String[o.length];
    System.arraycopy(o,0,s,0,o.length);
      

  6.   

    这样转:String[] para = (String[])m.keySet().toArray(new String[0]);
      

  7.   

    另外你可以不用Arrays.sort();
    你可以用Collections.sort(List list);
      

  8.   

    多谢,楼上诸位!
    还有一问:
    在java中,多维数组是否可以做为函数的传值参数,如
    public String CodeGenarate(String[][] para){ 
    。。
    }
      

  9.   

    转型失败
    放入容器里面后所有的对象都失去了类型而只是最顶级的OBJECT类型
    要再次转型才可
      

  10.   

    急啊,正赶着完成一个任务。
    HEHE,麻烦大家了。