Java泛型方法中为什么不能创建泛型实例new T()却能声明变量T t呢?

擦除不是没有类型了,而是编译期擦除成Object了,因此声明T类型会变成Object,那么任何类的实例都可以被Object接收,自然就可以运行。而new T()是必须要有运行时类型信息的,否则运行时不知道实例的类型,没有办法创建实例,举例来说,C#的泛型是真泛型保留运行时类型的,那么就可以实现new T()、typeof(T)(等价于T.class)这种操作。
作者:陆萌萌
链接:“https://www.zhihu.com/questio...
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(php后端java)