Creating generic arrays in Java

前端 未结 3 536
情深已故
情深已故 2020-12-18 09:30
public K[] toArray()
{
    K[] result = (K[])new Object[this.size()];
    int index  = 0;
    for(K k : this)
        result[index++] = k;
    return result;
}
         


        
3条回答
  •  北荒
    北荒 (楼主)
    2020-12-18 10:07

    You can't: you must pass the class as an argument:

    public  K[] toArray(Class clazz)
    {
        K[] result = (K[])Array.newInstance(clazz,this.size());
        int index  = 0;
        for(K k : this)
            result[index++] = k;
        return result;
    }
    

提交回复
热议问题