我是一位有用的助手,可以为您翻译文本。
我有一个已填充的ArrayList(非CodeModel)在使用CodeModel的代码生成类中,并且我想在生成的代码中使用它。是否有任何方法可以做到这一点?这有点“跨界”,因为生成的代码不引用或依赖于生成它的代码,但是我仍然希望使用ArrayList的值,而不必通过手动逐个复制遍历来实现...与字符串、数字等一样,肯定有一种方法可以做到这一点...?
我的示例代码如下:
我有一个已填充的ArrayList(非CodeModel)在使用CodeModel的代码生成类中,并且我想在生成的代码中使用它。是否有任何方法可以做到这一点?这有点“跨界”,因为生成的代码不引用或依赖于生成它的代码,但是我仍然希望使用ArrayList的值,而不必通过手动逐个复制遍历来实现...与字符串、数字等一样,肯定有一种方法可以做到这一点...?
我的示例代码如下:
private JMethod makeHeadersWrapper( String endPointName, ArrayList<BasicNameValuePair> headersList )
{
JMethod wrapperMethod = definedClass.method( JMod.PUBLIC | JMod.STATIC, codeModel.ref( headersList.getClass() ).narrow( BasicNameValuePair.class ), StringUtils.formatName( "make" + endPointName + "Header", false, StringUtils.FormatType.UP_ENGLISH_WORDS ) );
JVar headersListVar = wrapperMethod.body().decl( wrapperMethod.type(), "headersList", {X} ) );
wrapperMethod.body()._return( headersListVar );
return wrapperMethod;
}
在我的任务声明中,你会看到有一个空白的{X}字段,我正在尝试弄清楚如何编写它。话虽这么说,{X}应该引用makeHeadersWrapper签名中的'headersList'参数。是否有任何方法可以做到这一点,以引用变量的值作为{X}并将其作为codemodel JExpr(ession)?请帮我解决{X}!:P
真诚地感谢, Piotr