如何通过Java反射判断对象方法是否存在并执行?

2026-04-15 10:202阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计260个文字,预计阅读时间需要2分钟。

如何通过Java反射判断对象方法是否存在并执行?

javapublic class MethodChecker { /** * 判断某个对象的方法是否存在,并反射执行此方法 * @param methodName 方法名称 * @param obj 源对象 * @param args 执行方法时需要传入的参数(按方法需要的参数顺序) */ private Object invokeMethod(String methodName, Object obj, Object... args) { // 获取对象类类型 Class clazz=obj.getClass(); // 获取方法 Method method=null; try { method=clazz.getMethod(methodName, getParameterTypes(args)); } catch (NoSuchMethodException e) { System.out.println(方法 + methodName + 不存在); return null; } // 执行方法 try { return method.invoke(obj, args); } catch (Exception e) { System.out.println(执行方法 + methodName + 时出错: + e.getMessage()); return null; } }

/** * 获取参数类型数组 * @param args 参数列表 * @return 类型数组 */ private Class[] getParameterTypes(Object[] args) { Class[] types=new Class[args.length]; for (int i=0; i java 判断某个对象的方法是否存在,并反射执行此方法

/** * methodName 方法的名称 * obj 源对象 * args 执行时要传入的参数(按方法需传入的参数顺序), */ private Object invokeMethod(String methodName,Object obj,Object... args) { Object returnObj = null; try { Class [] clazz = new Class[args.length]; for(int i=0;i

如何通过Java反射判断对象方法是否存在并执行?

本文共计260个文字,预计阅读时间需要2分钟。

如何通过Java反射判断对象方法是否存在并执行?

javapublic class MethodChecker { /** * 判断某个对象的方法是否存在,并反射执行此方法 * @param methodName 方法名称 * @param obj 源对象 * @param args 执行方法时需要传入的参数(按方法需要的参数顺序) */ private Object invokeMethod(String methodName, Object obj, Object... args) { // 获取对象类类型 Class clazz=obj.getClass(); // 获取方法 Method method=null; try { method=clazz.getMethod(methodName, getParameterTypes(args)); } catch (NoSuchMethodException e) { System.out.println(方法 + methodName + 不存在); return null; } // 执行方法 try { return method.invoke(obj, args); } catch (Exception e) { System.out.println(执行方法 + methodName + 时出错: + e.getMessage()); return null; } }

/** * 获取参数类型数组 * @param args 参数列表 * @return 类型数组 */ private Class[] getParameterTypes(Object[] args) { Class[] types=new Class[args.length]; for (int i=0; i java 判断某个对象的方法是否存在,并反射执行此方法

/** * methodName 方法的名称 * obj 源对象 * args 执行时要传入的参数(按方法需传入的参数顺序), */ private Object invokeMethod(String methodName,Object obj,Object... args) { Object returnObj = null; try { Class [] clazz = new Class[args.length]; for(int i=0;i

如何通过Java反射判断对象方法是否存在并执行?