【发布时间】:2014-02-28 15:09:11
【问题描述】:
我有
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 中传递正确的签名?
【问题讨论】:
-
使用
List.class。你为什么用ArrayList.class? -
为什么需要对这个任务使用反射?只是好奇...
-
应该如何区分
setContacts(List<PersonContact> contacts)和setContacts(List<String> contacts)(如果有这样的方法的话)。 -
@crush 这样的方法不能存在于同一个类中。他们将有相同的擦除。
-
@crush 我需要序列化为从数据库中检索的 JSON 对象,这些对象有列表,我不想序列化这些列表,我不能在 pojos 中使用 JsonIgnore 注释,以避免序列化过程中出现 LazyInitializationException,我只是将 null 设置为列表属性
标签: java reflection