在com.sun.codemodel中使用泛型

时间:2010-09-10 23:02:49

标签: java code-generation sun-codemodel

使用com.sun.codemodel,我想生成一个通用的LinkedList字段。我可以使用以下代码创建一个原始字段:

JDefinedClass masterClass;
String detailName;
JDefinedClass detailClass;
JFieldVar detailField = masterClass.field(JMod.PRIVATE, LinkedList.class, detailName);

但是我找不到用通用类型detailClass创建LinkedList的方法。

1 个答案:

答案 0 :(得分:14)

JClass detailClass = codeModel.ref(String.class);
String detailName = "myLinkedListField";
JClass rawLLclazz = codeModel.ref(LinkedList.class);
JClass fieldClazz = rawLLclazz.narrow(detailClass);
JFieldVar detailField = def.field(JMod.PRIVATE, fieldClazz, detailName);