java - 泛型的代码模型狭窄

标签 java generics sun-codemodel

我想生成一个新类如下:

public class QueryBuilder_QueryField
extends AbstractQueryBuilder<QueryBuilder_QueryField>

我试过了,但它并没有缩小扩展...

JCodeModel model = new JCodeModel();
String fqcn = packageName + "." + className;
JDefinedClass builderClass = model._class(fqcn);
builderClass._extends(AbstractQueryBuilder.class).narrow(builderClass);

但结果却像

public class QueryBuilder_QueryField
extends AbstractQueryBuilder

有什么想法吗?

最佳答案

我认为在将类传递给 _extends() 之前您需要缩小范围:

JCodeModel model = new JCodeModel();
String fqcn = packageName + "." + className;
JDefinedClass builderClass = model._class(fqcn);
builderClass._extends(model.ref(AbstractQueryBuilder.class).narrow(builderClass));

生成:

public class QueryBuilder_QueryField
extends AbstractQueryBuilder<QueryBuilder_QueryField>

关于java - 泛型的代码模型狭窄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32620923/

相关文章:

c# - 获取通用抽象类的属性名

java - 如何在注释中生成/声明注释字段?

java - NoClassDefFoundError:注释处理期间的 org/junit/AfterClass

java - JFrame 上元素的对齐方式

具有自引用类型的泛型类型的 Java 子类化问题

java - 访问子类中的隐藏字段

java - Java 中接受任意类型作为参数的方法

java - 如何使用代码模型调用另一个类的方法

java - 是否可以同时运行嵌入式 AND 客户端服务器 derby 数据库?

java - 使用 Java 从 mysql 数据库检索音频文件