使用Reflection传递Double类型的参数

时间:2014-11-07 21:01:54

标签: java reflection

我正在尝试在需要传递类型为Double的参数的情况下使用反射。当我直接调用函数时,我的代码工作得很好,但是当我通过两个双精度作为参数的反射来实现它时它失败了。这是恐怖:

java.lang.NoSuchMethodException: org.jinstagram.Instagram.searchMedia(java.lang.Double, java.lang.Double)

Double lat = Double.parseDouble(methodArgument[0][0]);
Double lng = Double.parseDouble(methodArgument[0][1]);
Method m = instagram.getClass().getDeclaredMethod("searchMedia", Double.class, Double.class);
Object o = (Object) m.invoke(instagram, lat, lng);

只是为了测试,我可以这样成功地调用它:

Object o = instagram.searchMedia(lat, lng);

所以问题必须在某个地方使用反射,对吗?

1 个答案:

答案 0 :(得分:1)

有问题的方法的签名是

public MediaFeed searchMedia(double latitude, double longitude)
                                                             throws InstagramException

因此,您需要使用double.class代替Double.class