【发布时间】:2013-02-03 08:46:19
【问题描述】:
好的,所以我正在设置我自己的 XML 序列化(我知道还有其他的,甚至一些内置于 Java 中,但我自己这样做是为了学习,因为使用它非常棒)。我已经序列化了。我目前正在进行反序列化(读取 XML 文件并根据文件中的数据组装对象),并且在设置泛型类型时遇到了问题。经过广泛的研究,我想出了如何获取类的泛型类型,以便在序列化时编写它们,但我不知道如何做到这一点:
Class c = Class.forName(string);
ArrayList<c> list = new ArrayList<c>();
我在 C# 中看到了一些答案,但显然 C# 比 Java 更通用,我无法在 Java 中复制那里的解决方案。即使有反射,这也能做到吗?
【问题讨论】:
-
你不能。泛型只是编译时语法糖。
-
@TJCrowder - 是的......大多数时候我只是觉得它可能需要一个比我想在晚上这个时候输入的更好的解释:)但我会咬 - 感动回答。
-
你不能。这个问题没有意义。泛型是由编译器擦除的编译时机制。运行时的总影响为零。所以即使你能做到,结果也不会改变。
标签: java generics reflection