intro

调用 method.invoke(Object target, Object... args) 方法的方式出错:传入参数个数错误。

起因

我想自动执行某一对象的所有getters方法,但又不想手动调用,所以利用反射,写了工具方法:

    // 执行某对象的所有getters方法public static void invokeGetters(Object obj) {Class clazz = obj.getClass();Method[] methods = clazz.getDeclaredMethods();for (Method method : methods) {if (method.getName().matches("get.*")) {try {System.out.println(method.getName() + " = " + method.invoke(obj));// java.lang.IllegalArgumentException: wrong number of arguments} catch (Exception e) {// e.printStackTrace();}}}}

但报错。
原因:有些方法,如 request.getHeaders(String s)需要传入参数。
那么需要传入参数的getters就不管了(参数个数不为0的getters就不执行)。
判断flag变为:method.getName().matches("get.*") && 0 == method.getParameterCount()
即:方法名匹配get.*模式 且 方法的参数个数为0。才会调用method.invoke(obj)

  • 修改后的工具方法
public static void invokeGetters(Object obj) {Class clazz = obj.getClass();Method[] methods = clazz.getDeclaredMethods();for (Method method : methods) {if (method.getName().matches("get.*") && 0 == method.getParameterCount()) {try {System.out.println(method.getName() + " = " + method.invoke(obj));} catch (Exception e) {// e.printStackTrace();}}}
}

IllegalArgumentException: wrong number of arguments相关推荐

  1. Compiled functions can't take variable number of arguments or use keyword-only arguments with defaul

    Compiled functions can't take variable number of arguments or use keyword-only arguments with defaul ...

  2. Hbase的shell出现wrong number of arguments xxx以及undefined method any?for xxxx

    我们大概碰到过下面这种情况 ERROR: wrong number of arguments (10 for 6) For usage try 'help "put"' Took ...

  3. C++工作笔记-hiredis中关于ERR wrong number of arguments for HMSET问题的解决

    这里有个坑 使用hiredis的API进行调用时如果是如下命令, hmset userid:1001 username 'xiao ming' 这种语法,使用redis-cli是没有问题的,但如果使用 ...

  4. ERR wrong number of arguments for ‘srem‘ command

    ERR wrong number of arguments for 'srem' command 问题描述 再远程调用redis服务得时候,出现得这个异常,字面意思就是参数不匹配 问题解决 原因是因为 ...

  5. org.springframework.dao.InvalidDataAccessApiUsageException: ERR wrong number of arguments for ‘srem‘

    1.报错信息 org.springframework.dao.InvalidDataAccessApiUsageException: ERR wrong number of arguments for ...

  6. Error Code: 1318. Incorrect number of arguments for PROCEDURE student.new_procedure; expected 0, got

    1.错误描述 13:58:20 call new_procedure('2000','zhangsan') Error Code: 1318. Incorrect number of argument ...

  7. ERR wrong number of arguments for 'sadd' command

    在用spring redis 存储set数据的时候,提示了这个ERR wrong number of arguments for 'sadd' command这个错误,通过调试发现: redisTem ...

  8. Java反射invoke报错wrong number of arguments

    目录 一.问题发生 二.问题解决 1.代码 2. Method.invoke()方法 3.可变参数(重点) 一.问题发生 使用反射调用方法时出现问题,如下图所示: 二.问题解决 1.代码 出问题的代码 ...

  9. node-redis:ErrorReply: ERR wrong number of arguments for ‘auth‘ command

    问题描述 环境 $ node -v v16.14.0# redis-cli 127.0.0.1:6379> info # Server redis_version:5.0.5 版本 packag ...

最新文章

  1. 设计模式之访问者模式、例子分析
  2. Kubernetes容器网络及网络模型
  3. 跨域请求获取Solr json检索结果并高亮显示
  4. memcached和redis的区别
  5. 损失函数梯度对比-均方差和交叉熵
  6. mysql 实现非递归树_二叉树的非递归前序,中序,后序遍历算法
  7. 计算机网络dns实验报告,计算机网络DNS以及HTTP协议实验报告
  8. C++读取字符串中的数字的方法
  9. LINUX系统下监控DELL服务器硬盘状态
  10. 高等数学复习笔记(二)- 一元函数微分学的概念、计算以及几何应用
  11. 黑苹果固态硬盘_普通电脑也能尝试:MacOS黑苹果+雷电3硬盘盒测试
  12. 测试计算机性能的软件比较专业,用什么软件可以测试计算机的整体性能?
  13. nvme linux读写测试工具,不同硬件平台(intel/AMD)和不同OS/FS/测试工具下NVMe SSD性能简测...
  14. Mac系统下编译并使用ijkplyer播放器
  15. 浅谈Nacos中的CAP
  16. S2ANet(Align Deep Features for Oriented Object Detection)解读
  17. 常见的状态码HTTP Status Code
  18. Python学习笔记第二十九天(N维数组(ndarray))
  19. 关于state和status
  20. python3图片处理(笔记)

热门文章

  1. Windows fatal exception: access violation / Process finished with exit code -1073741819 (0xC0000005)
  2. 将 C# .NET ( Core Framework ) WPF Winform 项目打包成单个 exe 可执行文件
  3. C51蜂鸣器演奏两只老虎
  4. 【JDBC】JDBC 简介 ( JDBC 概念 | JDBC 本质 | 使用 JDBC 操作数据库的好处 | JDBC 提供的 API 组件 )
  5. Android-PickerView的简单封装与使用
  6. promise的实例方法、静态方法
  7. 英语学习经验分享(四六级、竞赛、口语)
  8. 使用Weka进行数据可视化
  9. CentOS修改hosts文件及生效命令
  10. arnold如何设置鱼眼相机_关于C4D阿诺德的摄像机参数详解