问题:我在GWT客户端有一个类型为T的泛型超类,该子类是在运行时生成的(使用GIN),初始化了泛型参数,是否可以在运行时检索具体子类的泛型参数类型?
我可以在JRE环境中获得实际类型(使用Class.getGenericSuperclass和Class.getActualTypeArguments),但我不知道如何在GWT环境中做到这一点,我搜索了一些GWT第三反射库,似乎没有一个支持此功能。是否可以在运行时从GWT获取通用参数类型?如果没有,有什么变通办法吗?
非常感谢。
我发现了一个项目:gwt预处理器,它在编译时生成反射信息,在某些情况下非常有用。
因为GWT编译器在编译时知道一切,所以绝对没有理由在运行时使用反射;这就是GWT中不模拟反射的原因。
处理此问题的正确方法是使用生成器:http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html#generators
(或者更好的是,从不同的角度考虑这个问题,这样你就根本不需要反思了)