Поддерживает ли кодовая модель 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));
Другие вопросы по тегам