我有

public void setContacts(List<PersonContact> contacts) {
    this.contacts = contacts;
}

我需要尝试使用反射来获得这种方法
  clazz.getMethod("setContacts", ArrayList.class);

显示错误:
java.lang.NoSuchMethodException: model.person.Person.setContacts(java.util.ArrayList)

没错,方法签名是
    setContacts(List<PersonContact> contacts)

那么,如何在getMethod中传递正确的签名?

最佳答案

参数类型是java.util.List而不是java.util.ArrayList

clazz.getMethod("setContacts", List.class);

使用实际的类很重要,因为您也可以使用ArrayList参数重载该方法

09-11 17:58