[img]http://dl.iteye.com/upload/attachment/548831/6c8ce137-7352-3215-b694-d65a7b4d67de.png[/img]
看上图,如题,求教
加一个方法如下:
[code="java"]public void setValue(String methodName, SHCAppointments obj, String icdCode) throws Exception {
Method m = SHCAppointments.class.getDeclaredMethod(methodName, String.class);
m.invoke(obj, icdCode);
}[/code]
将整个switch换成一个for循环即可:
[code="java"]for(int i=0; i<refs.length; i++) {
setValue("setIcdCode" + (i+1), shcAppt, refs[i]);
}[/code]
你说的什么意思不太明白
用反射机制
在SHCAppointments中,将icd code定义成
[code="java"]
String[] icdCodes = new String[10]
public String getIcdCode(int codeIndex){
if(codeIndex < 1 || codeIndex > 10) {
throw new IllegalArgumentsException("index out of range.");
}
return icdCodes[codeIndex - 1];
}
public void setIcdCodes(String[] refs){
for (int i = 0 ; i < refs.length ; i++) {
icdCodes[i] = refs[i];
}
}
[/code]