Wie die get-Methode mit einer Liste<SomeObject> als parameter mit der Spiegelung
Habe ich
public void setContacts(List<PersonContact> contacts) {
this.contacts = contacts;
}
Einen brauchen, bekommen Sie diese Methode mit der Spiegelung, ich habe versucht
clazz.getMethod("setContacts", ArrayList.class);
zeigen die erro :
java.lang.NoSuchMethodException: model.person.Person.setContacts(java.util.ArrayList)
Das ist korrekt, die Signatur der Methode ist
setContacts(List<PersonContact> contacts)
So, wie kann ich pass korrekten Signatur in getMethod?
- Verwenden
List.class
. Warum sind Sie mitArrayList.class
? - Warum müssen Sie mithilfe von reflektion für diese Aufgabe? Einfach nur neugierig...
- Wie soll es unterscheiden zwischen
setContacts(List<PersonContact> contacts)
undsetContacts(List<String> contacts)
(wenn so eine Methode existiert). - Eine solche Methode existiert nicht in der gleichen Klasse. Sie würde die gleiche erasure.
- Ich muss serialisieren zu JSON-Objekten abgerufen aus der Datenbank, diese Objekte-Liste, ich will nicht serialisieren diese Liste und ich kann JsonIgnore Anmerkung in der pojos, um zu vermeiden, LazyInitializationException während der Serialisierung, ich habe gerade null in der Liste Eigenschaften
- Danke für den Begriff - Notwendigkeit, zu schauen, dass man.
Du musst angemeldet sein, um einen Kommentar abzugeben.
den Typ des Parameters ist
java.util.List
und nichtjava.util.ArrayList
Ist es wichtig, dass Sie verwendet die tatsächliche Klasse, da könnte man auch die Methode überladen ist mit einer ArrayList parameter
null
zuObject
.