Это должно работать:
import java.lang.reflect.Array;
class Classname<T> {
T[] foo;
public Classname(Class<T> klass, int size) {
this.foo = (T[]) Array.newInstance(klass, size);
}
}
тогда вы сможете использовать его следующим образом:
Classname<Double> c = new Classname<>(Double.class, 5);