假设有以下类 stub :
public class Foo<T> {
private Class<T> type;
public Foo<T> () {}
}
我可以存储通用类型吗 T
进场type
在构造函数中,不将构造函数的签名更改为“public Foo<T> (Class<T> type)
”?
如果是,怎么办?如果不是,为什么?
“type = T
”似乎不起作用。
最佳答案
否 - 类型删除意味着您必须在执行时提供一些东西。您可以提供 T
的一个实例或 Class<T>
但是类本身只会将每次出现的 T 替换为 Object
.
这种事情是 Java 的泛型与 .NET 中的泛型相比的最大缺点之一。 (另一方面,在 Java 中的方差故事比在 .NET 中更强大 - 如果更令人困惑的话。)
关于java - 我可以将泛型属性存储到对象的字段中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/304640/