java - 在 Java 中实例化通用对象

标签 java generics

是否可以像下面的代码片段那样在 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/

相关文章:

java - java中的最高日期

java - session 超时值被覆盖。设置session值的方法有哪些

Java二叉搜索树递归删除删除元素

c# - 使用 yield return 的 IEnumerable 和递归

java - 'U extends Something' VS 有界类型参数中的 'Something'

java - scrollView 中的磁力效果

java - 如何将 Zip Statusbox 添加到 JFrame

c# - 获取通用列表中对象的索引

Java、策略模式、泛型和返回类型

generics - 扩展函数内的 Kotlin KClass 实例