XML und Immutable Objects

Unveränderliche Objekte – also ohne Setter, sind enorm praktisch und gemeinhin guter Stil. Ok, nicht immer, aber für enorm viele Datenklassen macht es total Sinn – insbesondere, weil sie Threadsafe sind und in Interfaces Seiteneffekte durch call by reference vermeiden.

Nun sind eben genau diese Typen gerne mal zu schreiben und JAXB verlangt einen Defaultconstructor. Ich habe dazu die absurdesten Klimmzüge im Netz gefunden mit Mapperklassen und ähnlichem. Das hier ist simpel und funktioniert:

@XmlRootElement
public class ImmutableName {

  @XmlElement
  private String firstname;
  @XmlElement
  private String surname;

  private ImmutableName() {
  }

  public ImmutableName(String firstname, String surname) {
    this.firstname = firstname;
    this.surname = surname;
  }

  public String getFirstname() {
    return firstname;
  }

  public String getSurname() {
    return surname;
  }

}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


neun + 2 =