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 mit ArrayList.class?
  • Warum müssen Sie mithilfe von reflektion für diese Aufgabe? Einfach nur neugierig...
  • Wie soll es unterscheiden zwischen setContacts(List<PersonContact> contacts) und setContacts(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.

Schreibe einen Kommentar