1

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...));

使用this得到的代码如下: Object obj = new GenericEntity>(listStr)

但是“{}”不见了。

有人能帮我一下吗?如何使用{}获得代码:

Object obj = new GenericEntity<List<java.lang.String>>(listStr){}
4

1 回答 1

0

使用此方法(https://codemodel.java.net/nonav/apidocs/com/sun/codemodel/JCodeModel.html#anonymousClass(com.sun.codemodel.JClass))。像这样的东西:

    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));
于 2015-09-10T21:50:05.013 回答