为什么不能获取ArrayList的“ get”方法并调用它?

我正在使用反射在嵌套类中进行修改。我的一个类有一个类列表,所以我希望能够使用相同的逻辑来获取和调用get方法。

简化,失败的行是

ArrayList.class.getClass().getMethod("get")


它失败了,给了我一个NoSuchMethodException。

我知道可以使用aList.get(),但这不是重点,我需要使用反射,因为这是在深度嵌套的类中。

TL; DR
如何获取数组列表的“ get”方法?

最佳答案

请注意,Class#getMethod()具有两个参数:StringClass对象的变量。前者是


  参数列表


该方法声明的。

您需要使用

ArrayList.class.getMethod("get", int.class);


因为ArrayList#get(int)方法有一个int参数。



我最初很想念整个

ArrayList.class.getClass().getMethod("get")
          ^     ^
          |     |----------------------------- gets Class<Class>
          |----------------------------------- gets Class<ArrayList>


.class已获取ClassArrayList实例。对此调用getClass将返回类ClassClass实例。你不要那样

关于java - Java反射ArrayList.class.getMethod(“get”)返回NoSuchMethodException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19100316/

10-12 22:37