Java 在com.sun.codemodel中使用泛型

Java 在com.sun.codemodel中使用泛型,java,code-generation,sun-codemodel,Java,Code Generation,Sun Codemodel,使用,我想生成一个通用LinkedList字段。我可以使用以下代码创建原始字段: JDefinedClass masterClass; String detailName; JDefinedClass detailClass; JFieldVar detailField = masterClass.field(JMod.PRIVATE, LinkedList.class, detailName); 但是我找不到一种方法来创建一个通用类型为detailClass的LinkedList 您有一个打

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

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

但是我找不到一种方法来创建一个通用类型为
detailClass
的LinkedList

您有一个打字错误:
masterClass
,一个是
masterClazz
。(切线:为什么每个人都必须在故意拼写错误时使用“clazz”,而不是像“cl”或“class1”,甚至是“class”,当它是像“masterClass”或“detailClass”这样的标识符的一部分时,仅仅是“class”)@JasonS谢谢,这起到了作用。不知何故,我浏览了一下文档中的
shown
,因为它看起来像
javax.rmi.PortableRemoteObject.shown
中的类型转换。
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);