我需要调用 Class.getMethod(java.lang.String, java.lang.Class...)获取其中一个可变参数是可变参数的方法。
目前我正在尝试:
// to get jdbcTemplate.queryForObject(RowMapper, Object...)
jdbcTemplate.getClass().getMethod("queryForObject", RowMapper.class, Object.class);
结果,不足为奇
Caused by: java.lang.NoSuchMethodException: org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForObject(java.lang.String, org.springframework.jdbc.core.RowMapper, java.lang.Object)
at java.lang.Class.throwNoSuchMethodException(Class.java:283)
at java.lang.Class.getMethod(Class.java:825)
我该怎么做?
最佳答案
您需要提供一个数组类型:
getMethod("queryForObject", RowMapper.class, Object[].class);
基本上,可变参数是一个数组,只是带有一些额外的元数据,告诉编译器允许将该数组指定为元素序列而不是单个表达式。
关于java - 参数为可变参数时的 Class.getMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5672778/