2011-04-15 17 views
16

Varargs parametrelerinden birinin varargs olduğu bir yöntem almak için Class.getMethod(java.lang.String, java.lang.Class...) numaralı telefonu çağırmam gerekiyor.Parametre varargs olduğunda Class.getMethod

Şu anda çalışıyorum: Bunu nasıl

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) 

değil şaşırtıcı sonuçları

// to get jdbcTemplate.queryForObject(RowMapper, Object...) 
jdbcTemplate.getClass().getMethod("queryForObject", RowMapper.class, Object.class); 

?

cevap

25

yerine bir dizi türü sağlamanız gerekir: Bir dizi olarak belirtilmesi Temelde

bir varargs parametre sadece bu diziyi izin derleyici söylüyorum meta ekstra bit ile bir dizi olduğunu Tek bir ifade yerine elemanların

+1

Teşekkürler. Diziler olduğunu biliyordum, sadece Type []. Sınıfının geçerli bir sözdizimi olduğunu hatırlamıyordum. Scala beni mahvediyor. SO, yaklaşık 5 dakika içinde bana izin verdiğinde kabul edilir. – Synesso

İlgili konular