讨厌的check

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public abstract class CheckDataHandler implements CheckHandler{
	private List<Method> checkMethodList = new ArrayList<Method>();
	private HashMap<Method,String[]> checkMethodParam = new HashMap<Method, String[]>();
	
	public CheckDataHandler(){
		initCheckList();
	}
	public boolean checkData() throws Exception {
		return excuteCheck().equals("success");
	}
	
	public void addCheck(String checkName,String[] param) throws Exception{
		Method method = this.getClass().getDeclaredMethod(checkName);
		checkMethodList.add(method);
		checkMethodParam.put(method,param);
	}
	
	private String excuteCheck() throws Exception {
		
		for (Method method : checkMethodList) {
			method.invoke(this, checkMethodParam.get(method));
		}
		return "success";
	}
	
	protected abstract void initCheckList();
}

你可能感兴趣的:(java)