Kategorien
Java

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;
  }

}
Kategorien
Allgemeines Java

Oracle Java Lizensierung

Spannend. Ein JDK ohne Autoupdate von Oracle scheint wohl jetzt kostenpflichtig zu sein. Ebenso Java 5. Da sehe ich für den einen oder anderen Betreiber ein Problem…