本文的重点是:定义一个通用接口,数据库存的是这个接口不同的实现类的位置,在通用接口,根据参数的不同来连库找到不同的处理方法的实现类,从而在同一个接口内,处理不同的业务。
String subBefore = ni.getStr("SUBMIT_BEFORE");
String sub = ni.getStr("SUBMIT");
String subAfter = ni.getStr("SUBMIT_AFTER");
String backBefore = ni.getStr("GOBACK_BEFORE");
String back = ni.getStr("GOBACK");
String backAfter = ni.getStr("GOBACK_AFTER");
Object v0 = ni.get("NODE_ORDER");
int order = 1;
if(v0!=null && !"".equals(v0) && !"null".equals(v0)){
order = Integer.parseInt(v0+"");
}
bi.setFlowId(appCode);
bi.setNodeId(nodeId);
bi.setNodeName(nodeName);
bi.setRgCode(rgCode);
if(backAfter!=null && !"".equals(backAfter) && !"null".equals(backAfter)){
Object v = getObject(backAfter);
if(v!=null) {
bi.setGobackAfter((FlowGobackAfter)v);
}
}
if(backBefore!=null && !"".equals(backBefore) && !"null".equals(backBefore)){
Object v = getObject(backBefore);
if(v!=null) {
bi.setGobackBefore((FlowGobackBefore) v);
}
}
if(back!=null && !"".equals(back) && !"null".equals(back)){
Object v = getObject(back);
if(v!=null) {
bi.setGobackIn((FlowGoback) v);
}
}
我这段代码里,将数据库存的类位置,拿到后,调用
Object v = getObject(backBefore);
private Object getObject(String classPath){
try {
return Class.forName(classPath).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
log.error(e.getMessage(),e);
} catch (IllegalAccessException e) {
e.printStackTrace();
log.error(e.getMessage(),e);
} catch (ClassNotFoundException e) {
e.printStackTrace();
log.error(e.getMessage(),e);
}
return null;
}
就可以返回一个Object的这个接口