Java CodeModel如何使用com.sun.CodeModel获得特定索引的值

Java CodeModel如何使用com.sun.CodeModel获得特定索引的值,java,arrays,sun-codemodel,Java,Arrays,Sun Codemodel,我正在使用com.sun.codemodel生成我的类。 我需要根据索引参数动态获取数组值 所以我有一个调用,它假设返回一个数组 JcodeModel model = new JCodeModel(); JPackage jPackage = codeModel._package(packageName); ..... JType personType = codeModel._ref(Person.class); jVar personObject = method.decl

我正在使用com.sun.codemodel生成我的类。 我需要根据索引参数动态获取数组值

所以我有一个调用,它假设返回一个数组

 JcodeModel model = new JCodeModel();
 JPackage jPackage = codeModel._package(packageName);
     .....
 JType personType = codeModel._ref(Person.class);
 jVar personObject = method.decl(personType, "person", JExpr._new(personType));
 personObject.invoke("getRoles");???
在本例中,getRoles()返回一个数组,我想在特定索引处获取一个对象。 像这样的

int index = 0;
Person person = new Person();
String role = person.getRoles()[index];

我该怎么办?

最坏的情况下,您可以始终使用JBlock.directStatement()…

最坏的情况下,您可以始终使用JBlock.directStatement()…

不知道我是否正确,但可能以下内容对您有用:

JInvocation invocation = personObject.invoke("getRoles");
JArrayCompRef arrayCompRef = invocation.component(indexExpression);
在以下JavaDoc中找到此项: )


希望这有帮助…

我不知道我是否正确,但也许以下内容对你有用:

JInvocation invocation = personObject.invoke("getRoles");
JArrayCompRef arrayCompRef = invocation.component(indexExpression);
在以下JavaDoc中找到此项: )


希望这能有所帮助……

谢谢这有效,但我没有声明它为JarrayCompression。谢谢这有效,但我没有声明它为JarrayCompression。