Поддерживает ли кодовая модель Java GenericEntity
Поддерживает ли кодовая модель Java GenericEntity?
Я пытаюсь сгенерировать код, как показано ниже, используя jcodemodel:
Object obj = new GenericEntity<List<java.lang.String>>(listStr){}
Но я не могу этого сделать. Я использовал ниже код:
JType jObjType = ((JClass) jcodemodel._ref(GenericEntity.class)).narrow(jcodemodel.ref(List.class).narrow(
jcodemodel.ref(String.class)));
JVar jvobj = jMethodResource.body().decl(jcm.ref(Object.class), "obj", JExpr._new(jObjType).arg(.....listStr reference...));
Код, полученный с использованием этого, выглядит следующим образом: Object obj = new GenericEntity>(listStr)
Но "{}" отсутствует.
Может ли кто-нибудь помочь мне здесь? Как сделать код, чтобы я получил с {}:
Object obj = new GenericEntity<List<java.lang.String>>(listStr){}
1 ответ
Решение
Используйте этот метод ( https://codemodel.java.net/nonav/apidocs/com/sun/codemodel/JCodeModel.html). Что-то вроде того:
JClass listOfEmplType = jcodemodel.ref(List.class).narrow(jcodemodel.ref(
Emplyee.class.getName()));
JVar listOfEmpl = jMethodResource.body().decl(listOfEmplType, "listStr", JExpr._null());
JClass jObjType = ((JClass) jcodemodel._ref(GenericEntity.class)).narrow(listOfEmplType);
JVar jvobj = jMethodResource.body().decl(jcodemodel.ref(Object.class), "obj",
JExpr._new(jcodemodel.anonymousClass(jObjType)).arg(listOfEmpl));