private static Method getMethod(Object o, Object[] args, String methodName, Class<?>[] argsArray){
		Method method = null;
		try {
			method = o.getClass().getMethod(methodName, argsArray);
		} catch (NoSuchMethodException e) {
			try{
				method = o.getClass().getDeclaredMethod(methodName, argsArray);
			}catch (NoSuchMethodException e2) {
				for(int i = 0; i < args.length; i++){
					//引数がひとつであれば大丈夫。引数が複数の場合はほぼ無理。一括で引数すべてのスーパークラス取得するので。
					if(args[i].getClass().getSuperclass() != null){//primitive, interface, Objectであればスーパークラスはnull
							argsArray[i] = args[i].getClass().getSuperclass();
					}
					else{//すべてのインターフェースについてためす。j=0...,その後インターフェースのスーパークラス 
//						if(args[i].getClass().getInterfaces() != null){
//							Class<?>[] icls = args[i].getClass().getInterfaces();
//							for(int j = 0; j < icls.length; j++){
//								argsArray[i] = icls[j];
//							}
//						}
					}
					counter++;
					if(counter == 5){
						message = "NoSuchMethodException\r\n";
						display.append(message);
						return null;
					}
					method = getMethod(o, args, methodName, argsArray);
				}
			}
		}
		return method;
	}