2011-04-15 30 views
16

我需要調用Class.getMethod(java.lang.String, java.lang.Class...)來獲得一個方法,其中一個可變參數參數是可變參數。Class.getMethod當參數是可變參數

目前我想:

// 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) 

我怎樣才能做到這一點?

回答

25

您需要提供代替數組類型:

基本上是一個可變參數參數陣列,只需用告訴編譯器以允許該陣列的元數據的一個額外的位被指定爲序列的元素而不是單個表達式。

+1

謝謝。我知道他們是數組,只是不記得Type []。class是有效的語法。斯卡拉一直在溺愛我。當SO讓我......約5分鐘後,點擊會被接受。 – Synesso 2011-04-15 05:46:31