下面的bean类包含一个类数组,它是一个多值属性。我试图使用Reflection动态地将值设置为下面的属性。
public class User {
private String userId;
private NameDetails[] nameDetails;
private ContactDetails contactDetails;
public ContactDetails getContactDetails() {
return contactDetails;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public void setContactDetails(ContactDetails contactDetails) {
this.contactDetails = contactDetails;
}
public NameDetails[] getNameDetails() {
return nameDetails;
}
public void setNameDetails(NameDetails[] nameDetails) {
this.nameDetails = nameDetails;
}
}
以下代码是我们实现反射的地方,我无法为数组设置值。
Class<?> c = Class.forName(method.getReturnType().getComponentType().getName());
Object arr = Array.newInstance(c, 1);
Method method = innerFieldType.getMethod("set" + tokens[i], arr.getClass());
Object obj = Array.get(arr, 0);
Array.set(obj, 0, finalRefObject);
method.invoke(finalRefObject, Array.get(arr, 0));
&#34; java.lang.IllegalArgumentException:数组元素类型不匹配&#34;
是我们得到的错误。
提前致谢