java - 在运行时确定泛型的翻译类型

标签 java generics runtime

我的问题与 here 的问题完全相似.就是这样,我想用Java来做。

假设,我想创建一个列表:

List<a_type> myList = new ArrayList<a_type>();

问题是什么a_type会是,是根据条件决定的。这两种可能的类型完全不相关,没有父类(super class),只有 Object 是共同的。如果我可以将类型存储在变量中,我的问题就会得到解决 requiredType并将其用作 List<requiredType> .我不确定我想要这个是贪婪、愚蠢还是无知,但情况就是这样。

虽然不重要,但是解释了我为什么需要它的场景here .


PS:请不要提及类型删除。请按原样考虑情况。我本可以很好地在问题中提到它。如果您认为有设计问题,请阅读情况here并提出替代方案。

最佳答案

这在 Java 中是不可能的,因为类型删除以及泛型仅限于编译时这一事实。

例如

List<Integer> integers = new ArrayList<Integer>();

在编译期间,当类型删除完成后变成

List integers = new ArrayList();

泛型只是告诉编译器列表应该只处理类型为Integer的对象的一种方式。 , 如果你在某个地方试图添加 Integer 以外的东西,让我们指出来为了类型安全。

关于java - 在运行时确定泛型的翻译类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607392/

相关文章:

c# - try block 内的通用输出值赋值

java - 具有变量 JsonProperty 的 Jackson 泛型(与泛型一起使用)

c++ - Amicable Numbers : Runtime is to long. 是什么原因造成的?算法复杂度?

java - 如何使用运行时?

java - 我正在尝试创建一种方法来计算两个数组中数字的平均值

java - MouseListener 在大框架 Java 上的位置

java - 通配符类型匹配 - Java

xml - Android 新手 - 在运行时绘制 View

java - 如何从 Java ArrayList 中删除顺序元素?

java - 如何使用 AffineTransform.quadrantRotate 旋转位图?