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)
我猜我错过了一些简单的事情。
1条答案
按热度按时间ltqd579y1#
因为声明是
add(E e)
.ArrayList<E>
是泛型类型,它不知道实际类型。请看这个例子
所以它能猜出
E
是Object