调用long方法。
/** from 时 代 J a v a 公 众 号**/ /* * NOTE: This is added by intellij IDE. Disregard this message if there is another copyright later in the file. * Copyright (C) 2014-2015 Will (n9Mtq4) Bresnahan * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ //package com.nowjava; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Main { /** * Call long method. * * @param methodName the method name * @param obj the obj * @param clazz the class * @param classParams the class params * @param params the params * @return the long */ public static long callLongMethod(String methodName, Object obj, Class clazz, Class[] classParams, Object[] params) { return (Long) callObjectMethod(methodName, obj, clazz, classParams, params); } /** * Call long method. * * @param methodName the method name * @param obj the obj * @param clazz the class * @param params the params * @return the long */ public static long callLongMethod(String methodName, Object obj, Class clazz, Object... params) { return callLongMethod(methodName, obj, clazz, getClassParams(params), params); }/*来 自 n o w j a v a . c o m*/ /** * Call long method. * * @param methodName the method name * @param obj the obj * @param classParams the class params * @param params the params * @return the long */ public static long callLongMethod(String methodName, Object obj, Class[] classParams, Object[] params) { return callLongMethod(methodName, obj, obj.getClass(), classParams, params); } /** * Call long method. * * @param methodName the method name * @param obj the obj * @param params the params * @return the long */ public static long callLongMethod(String methodName, Object obj, Object... params) { return callLongMethod(methodName, obj, getClassParams(params), params); } /** * Call object method. * * @param methodName the method name * @param obj the obj * @param clazz the class * @param classParams the class params * @param params the params * @return the object */ public static <E> E callObjectMethod(String methodName, Object obj, Class clazz, Class[] classParams, Object[] params) { Method m = null; try { m = clazz.getDeclaredMethod(methodName, classParams); m.setAccessible(true); return (E) m.invoke(obj, params); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } /** * Call object method. * * @param methodName the method name * @param obj the obj * @param clazz the class * @param params the params * @return the object */ public static <E> E callObjectMethod(String methodName, Object obj, Class clazz, Object... params) { return callObjectMethod(methodName, obj, clazz, getClassParams(params), params); } /** * Call object method. * * @param methodName the method name * @param obj the obj * @param classParams the class params * @param params the params * @return the object */ public static <E> E callObjectMethod(String methodName, Object obj, Class[] classParams, Object[] params) { return callObjectMethod(methodName, obj, obj.getClass(), classParams, params); }