问题描述
看上图,如题,求教
解决方案
加一个方法如下:public void setValue(String methodName, SHCAppointments obj, String icdCode) throws Exception {Method m = SHCAppointments.class.getDeclaredMethod(methodName, String.class);m.invoke(obj, icdCode);}将整个switch换成一个for循环即可:for(int i=0; i<refs.length; i++) {setValue("setIcdCode" + (i+1), shcAppt, refs[i]);}
解决方案二:
在SHCAppointments中,将icd code定义成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]; } }
解决方案三:
用反射机制
解决方案四:
你说的什么意思不太明白
时间: 2024-10-24 14:26:46