有一句代码不是很明白:File[] keyFiles = toPasteCollection.keySet().toArray(new File[0]);期中toPasteCollection是个hashmap集合,意思就是把这个集合里的Key值取出来放到一个数组当中,我不明白的是传递的数组怎么这样初始化new File[0]?谁帮解释一下?new File[0]怎么理解?HashMap

解决方案 »

  1.   

    看一下api你就会明白了。java.util.Set中有一个
    public <T> T[] toArray(T[] array);方法调用此方法,将会把set返回成一个规定的T类型的数组。
    new File[0]参数只是为该方法提供一个返回的类型。并没有确切的用途。类似于 File[] keyFiles = (File[])toPasteCollection.keySet().toArray();
    仅仅是类似,至于内部的实现这你需要进一步的研究。只能报到你这里了
      

  2.   

    这个长度为0的数组不是传进去接受数据的,而是为返回值提供类型的。
    推荐你仔细研究下java的泛型机制。
      

  3.   

    好吧,多谢,基础确实很重要
    现在这句代码返回的数组的大小怎么保证,是个没有长度的数组?无论toPasteCollection集合里的Key值有多少都可以放下?