arraylist< integer>getdeclaredmethod(“add”,integer.class)抛出nosuchmethodexception

qpgpyjmq  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(406)
ArrayList<Integer> intList = new ArrayList<>();
intList.getClass().getDeclaredMethod("add", Integer.class); // throws NoSuchMethodException

//where as
intList.getClass().getDeclaredMethod("add", Object.class); // is just fine.

当然在这种情况下,我希望第一个能起作用。或者至少弄清楚如何从泛型类型参数中获取方法。
当在声明的方法上循环时 add 方法不显式表示对象:

public boolean java.util.ArrayList.add(java.lang.Object)

我猜我错过了一些简单的事情。

ltqd579y

ltqd579y1#

因为声明是 add(E e) . ArrayList<E> 是泛型类型,它不知道实际类型。
请看这个例子
所以它能猜出 EObject

相关问题