java.lang.IllegalArgumentException: wrong number of arguments
先上错误代码
public GunConfigDTO getConfig() {
GunConfigDTO gunConfigDTO = new GunConfigDTO();
Field[] fields = GunConfigDTO.class.getDeclaredFields();
fields[0].toString();
List<Gunconfig> all = gunconfigMapper.findAll();
for (Gunconfig gunconfig : all
) {
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
Method method = null;
if (gunconfig.getName().equals(name)) {
if (fields[i].getType().isArray()) {
String[] split = gunconfig.getValue().split(",");
Double[] doubles = StringToDouble(split);
try {
try {
method = gunConfigDTO.getClass().getMethod("set" + do17(name), Class.forName("[Ljava.lang.Double;"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
method.invoke(gunConfigDTO, doubles);//这里就是错误行
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
} else {
try {
method = gunConfigDTO.getClass().getMethod("set" + do17(name), Double.class);
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
try {
method.invoke(gunConfigDTO, Double.parseDouble(gunconfig.getValue()));
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
}
return gunConfigDTO;
}
只需要把错误行改成
method.invoke(gunConfigDTO, (Object)doubles);
OK了!!!!