Использование дженериков с com.sun.codemodel - PullRequest
3 голосов
/ 11 сентября 2010

Используя com.sun.codemodel , я хотел бы создать общее поле LinkedList. Я могу создать необработанное поле, используя этот код:

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

Но я не смог найти способ создать LinkedList с общим типом detailClass.

1 Ответ

14 голосов
/ 11 сентября 2010
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);
...