这里有几种方法可以解决:
从逻辑POV:
甚至不能保证
T您使用的任何模板参数都有默认构造函数。显然,这带来了如何处理缺少默认构造函数的问题。可能的解决方案是产生运行时错误,编译时错误或禁止任何
T不提供默认构造函数的错误。后者显然会破坏模板定义,后者允许
any
T。而且运行时错误会使事情复杂化,并产生与上述相同的问题。首先仍然要防止此行为,并抛出编译时错误。
从内部来看:
假设我们可以使用提供的代码。那怎么办?由于擦除,
new T()将产生一个
Object。但是,如果
T是
Integer?好吧,我们被搞砸了。An
Object不是an
Integer,因此我们将获得一个普通的类广播异常。
因此,总而言之:从实用的POV来看,允许以上内容无法编译,而且破坏了Java中泛型的当前定义。



