GWT:从包含其名称和路径的String中获取类字面量



我正在一个GWT项目上工作,我想从包含其规范名称的字符串中获得类文字(而不是实例)。我希望我可以使用Class方法。但不幸的是,如您所知,此方法在JRE模拟中不可用。谢谢你的反馈。

您需要自己生成它——GWT故意不允许这样做。为了让GWT能够提供这一点,它需要从提供的源编译所有可能的类(和接口),它将无法删除任何未使用的代码,因为它不能自动理解您可能要求的类型。

请注意,如果你想要一个类的实例,同样的限制也会存在——你也不能用一个字符串来获得一个实例,至少在没有某种查找机制的情况下是这样。

,

很可能很多类型都不需要这个,可以手工生成,也可以自动生成,或者混合使用这些方法。

例如,如果你只需要访问几个自己的特定类,也许你可以用@ClassLookup这样的东西来注释每个类,并创建一个注释处理器来收集它们,并提供一个Map<String, Class<?>>实例,其中包含正确的名称和类实例。

另一方面,如果您需要一些您没有编写的类(因此,无法注释),则可以创建另一个注释,让您列出所需的其他类,或者您可以复制上面的映射并生成您自己的条目:

// for example, assuming the processor generated the LookupCache type:
Map<String, Class<?>> map = LookupCache.getMap();
map.put("java.lang.Double", Double.class);

最新更新