有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用反射将List<SomeObject>作为参数的java How get方法

我有

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中传递正确的签名呢


共 (1) 个答案

  1. # 1 楼答案

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

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

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