コンパイル時に型変数を解決しなければ、new制約は意味を成さないだろう。
動的に型を取ってきても意味がない。
つか、ワイルドカードは使う側の話で、new T() は呼び出される側の話だろ。例えばこう↓

class Data<T extends Test> {
public void func() {
T t = new T(); //※ここでエラーが出ます
}
}

class Invoker {
...
void invoke() {
for(Data<? extends Test> data : dataList) {
data.func();
}
}