是否可以像下面的代码片段那样在 Java 中实例化通用对象?我知道在 C# 中这是可能的。但是,我在 Java 中还没有看到类似的机制。
// Let T be a generic type.
T t = new T();
最佳答案
不,由于类型删除,这在 Java 中不起作用。当代码执行时,代码不知道什么 T
是。
请参阅Java Generics FAQ有关 Java 泛型的更多信息比您想要的更多:) - 特别是,请参阅 Type Erasure部分。
如果需要知道 T
的类型在执行时,由于这个或其他原因,您可以将其存储在 Class<T>
中并将其放入构造函数中:
private Class<T> realTypeOfT;
public Foo(Class<T> clazz) {
realTypeOfT = clazz;
}
然后您可以调用 newInstance()
等等
关于java - 在 Java 中实例化通用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4033518/