这个有没有优雅点的写法

[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]