xtext:如何在 JVM 推断器中为泛型使用未知类型?
xtext: How to use unknown types for generics in the JVM inferrer?
当我尝试在 JvmModelInferrer
中使用未知类型时,它适用于简单类型,但不适用于通用类型。
示例:
val unknownRef = typeRef('com.tmtron.ex.xtext2.usage.Unknown')
members += domainObject.toField('simpleField', unknownRef)
val listRef = typeRef(typeof(List), unknownRef)
members += domainObject.toField('list', listRef)
注意:com.tmtron.ex.xtext2.usage.Unknown
类型在目标项目中不存在。
生成器将生成此代码:
private com.tmtron.ex.xtext2.usage.Unknown simpleField;
private /* List<com.tmtron.ex.xtext2.usage.Unknown> */Object list;
所以为 simpleField
生成的代码是正确的(或者至少是我所期望的)。
但是对于通用的 list
,我期望的代码被注释掉了,而是使用了 Object
。
为什么会发生这种情况/我该如何避免这种情况?
在这种情况下,typeRef('java.util.List<com.tmtron.ex.xtext2.usage.Unknown>')
应该可以正常工作。
当我尝试在 JvmModelInferrer
中使用未知类型时,它适用于简单类型,但不适用于通用类型。
示例:
val unknownRef = typeRef('com.tmtron.ex.xtext2.usage.Unknown')
members += domainObject.toField('simpleField', unknownRef)
val listRef = typeRef(typeof(List), unknownRef)
members += domainObject.toField('list', listRef)
注意:com.tmtron.ex.xtext2.usage.Unknown
类型在目标项目中不存在。
生成器将生成此代码:
private com.tmtron.ex.xtext2.usage.Unknown simpleField;
private /* List<com.tmtron.ex.xtext2.usage.Unknown> */Object list;
所以为 simpleField
生成的代码是正确的(或者至少是我所期望的)。
但是对于通用的 list
,我期望的代码被注释掉了,而是使用了 Object
。
为什么会发生这种情况/我该如何避免这种情况?
typeRef('java.util.List<com.tmtron.ex.xtext2.usage.Unknown>')
应该可以正常工作。