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


yinpursue
1 声望0 粉丝

« 上一篇
java8的时间
下一篇 »
linux