我正在使用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];


我该怎么办?

最佳答案

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

JInvocation invocation = personObject.invoke("getRoles");
JArrayCompRef arrayCompRef = invocation.component(indexExpression);


在以下JavaDoc中找到了这一点:
http://codemodel.java.net/nonav/apidocs/com/sun/codemodel/JExpressionImpl.html#component(com.sun.codemodel.JExpression

希望这可以帮助...

10-08 18:00