我正在使用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];
我该怎么办?
答案 0 :(得分:3)
不知道我是否正确,但也许以下内容适合你:
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)
希望这会有所帮助......
答案 1 :(得分:1)
最糟糕的情况是你总是可以使用JBlock.directStatement()......