假设有以下类存根:
public class Foo<T> {
private Class<T> type;
public Foo<T> () {}
}
我可以存储泛型类型吗T
进入现场type
在构造函数中,而不将构造函数的签名更改为“public Foo<T> (Class<T> type)
"?
如果是,怎么办?如果没有,为什么?
"type = T
“似乎不起作用。
无类型擦除意味着你必须提供某物在执行时。您可以提供一个实例T
or Class<T>
但类本身只会将每次出现的 T 替换为Object
.
与 .NET 中的泛型相比,这种情况是 Java 泛型的最大缺点之一。 (另一方面,Java 中的差异故事比 .NET 中的差异更强烈,尽管更令人困惑。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)