Eclipse RCP下m2doc的{m:template}如何声明java.util.Set入参
报错根因
m2doc的模板入参语法强制要求参数类型必须是可被表达式解析器识别的完整分类器字面量,直接使用简写类名Set无法被解析定位到对应Java类型,触发“missing classifier literal”的校验报错。
修正步骤
- 将入参中简写的
Set替换为可被识别的全限定类名,补全java.util包路径。 - 修正后的完整模板声明代码为:
{m:template t_templateTest(req:request::Request, filters: java.util.Set)} - 泛型适配规则:运行时如果传入带具体泛型参数的Set实例(如
Set<String>、Set<自定义业务对象>),不需要在模板声明里额外标注泛型签名,m2doc的动态类型机制会自动匹配入参传入的实际对象,仅需保证顶层类型的全限定名正确即可。 - 异常排查参考:补全全限定名后仍出现分类器缺失报错时,检查当前RCP应用的类加载路径是否正常加载JDK核心类,确认没有因自定义类加载器隔离导致
java.util.Set类无法被解析。
内容的提问来源于stack exchange,提问作者Chris Little
相关产品推荐
相关产品推荐

