Possible Duplicate:
Java how to: Generic Array creation
How to create an array of type T[] in Java? I can't use Arrays.newInstance() since I have no objects of Class<T>. Is there a generic version of newInstance somewhere?
My method prototype follows:
public <T> T[][] distribute(T ... balls) {
   T[][] answer = ????
   // filling answer with data
   return answer;
}
UPDATE
Sorry in example above I can take class from balls. But suppose I have no such a variable.
public <T> T[][] distribute() {
   T[][] answer = ????
   // filling answer with data
   return answer;
}
or
class<T> {
   public T[][] distribute() {
      T[][] answer = ????
      // filling answer with data
      return answer;
   }
}
UPDATE2
This example also does not work:
public abstract class GenericArray<T> {
abstract public T create();
public T[] gen1() {
    T[] ans = (T[]) new Object[3];
    ans[0] = create();
    ans[1] = create();
    ans[2] = create();
    return ans;
}
public Integer[] gen2() {
    Integer[] ans = new Integer[3];
    ans[0] = new Integer(0);
    ans[1] = new Integer(0);
    ans[2] = new Integer(0);
    return ans;
}
public static void main(String[] args) {
    GenericArray<Integer> a = new GenericArray<Integer>() {
        @Override
        public Integer create() {
            return new Integer(0);
        }
    };
    Integer[] b = a.gen2();
    Integer[] c = a.gen1(); // this causes ClassCastException
    System.out.println("done");
}
}
 
     
     
     
     
    