Syn*_*sso 17 java reflection variadic-functions
我需要调用Class.getMethod(java.lang.String,java.lang.Class ...)来获取一个方法,其中一个varargs参数是一个varargs.
目前我正在尝试:
// to get jdbcTemplate.queryForObject(RowMapper, Object...)
jdbcTemplate.getClass().getMethod("queryForObject", RowMapper.class, Object.class);
Run Code Online (Sandbox Code Playgroud)
哪个结果,不足为奇
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)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Jon*_*eet 27
您需要提供数组类型:
getMethod("queryForObject", RowMapper.class, Object[].class);
Run Code Online (Sandbox Code Playgroud)
基本上是一个可变参数的参数是一个数组,只需用元数据告诉编译器以允许该阵列被指定为元素,而不是一个单一的表达的序列的额外位.
| 归档时间: |
|
| 查看次数: |
6122 次 |
| 最近记录: |