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...));
使用此方法得到的代码如下: 对象 obj = new GenericEntity>(listStr)
但是缺少“{}”。
有人可以帮我吗?如何编写代码以便我获得 {} :
Object obj = new GenericEntity<List<java.lang.String>>(listStr){}
最佳答案
使用此方法( 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));
关于java - Java代码模型是否支持GenericEntity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500159/