private static Object invoke(Class target, Object o, String methodName, Object[] paras)
			throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
	{

		ObjectInfo info = getObjectInfo(target);
		Class[] parameterType = new Class[paras.length];
		int i = 0;
		for (Object para : paras)
		{
			parameterType[i++] = para == null ? null : para.getClass();
		}
		ObjectMethodMatchConf mf = findMethod(target, methodName, parameterType);
		if (mf == null)
		{
			throw new BeetlParserException(BeetlParserException.NATIVE_CALL_INVALID, "根据参数未找到匹配的方法"+methodName+BeetlUtil.getParameterDescription(parameterType));
		}
		Object result = invoke(o, mf, paras);
		return result;

	}
private static Object invoke ( Class target , Object o , String methodName , Object [ ] paras ) throws IllegalAccessException , IllegalArgumentException , InvocationTargetException { ObjectInfo info = getObjectInfo ( target ) ; Class [ ] parameterType = new Class [ paras . length ] ; int i = 0 ; for ( Object para : paras ) { parameterType [ i ++ ] = para == null ? null : para . getClass ( ) ; } ObjectMethodMatchConf mf = findMethod ( target , methodName , parameterType ) ; if ( mf == null ) { throw new BeetlParserException ( BeetlParserException . NATIVE_CALL_INVALID , "根据参数未找到匹配的方法" + methodName + BeetlUtil . getParameterDescription ( parameterType ) ) ; } Object result = invoke ( o , mf , paras ) ; return result ; }
Beetl 本地方法调用即调用此类，需要考虑到多态。beetl自动调用第一个匹配到的函数，而不会像java那样，调用最合适的匹配到的函数
@param o 对象实例
@param methodName 方法名
@param paras 方法参数
@return
@throws IllegalAccessException
@throws IllegalArgumentException
@throws InvocationTargetException