我的问题与 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/