我正在尝试在需要传递类型为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);
所以问题必须在某个地方使用反射,对吗?
答案 0 :(得分:1)
有问题的方法的签名是
public MediaFeed searchMedia(double latitude, double longitude)
throws InstagramException
因此,您需要使用double.class
代替Double.class