In einer Javaanwendung habe ich vor einigen Tagen einen Faxpaus zum Besten gegeben, da muss man auch erstmal drauf kommen. Nicht eindeutig identifizierbare – sprich primitiven künstlichen Primärschlüssel – Entitäten mussten in eine Ausgabestruktur (JSON/XML) umgewandelt werden. Da nach aussen diese Entitäten aber einen – künstlichen – Schlüssel brauchen, habe ich entsprechend ein Konstrukt gebaut. In abgewandelter Form (natürlich im Original nicht mit System.out, aber es passt der Einfachheithalber genau):

System.out.print(entity1.getId() + '_' + entity2.getId());

wobei die Methode getId() jeweils ein primitives long zurückgibt. Und weil ich ja so sparsam bin, nutze ich auch nur ein Characterzeichen als Seperator. Jaja.. War eine äußerst sparsame Angelegenheit, die dazu führte, das ich heute wie verzweifelt gesucht habe, wieso denn kein String, sondern ein (hoher) numerischer Wert ausgegeben wird. Arg!

Für diejenigen, die diese Anekdote bis hierhin nicht verstanden haben: Macht nichts, scheinbar kein Programmierer 🙂 Die Lösung: Ein Characterzeichen ist natürlich kein String, d.h. Java wird nicht automatisch daraus einen String erstellen. Dementspreched steht dort eine Formel a la long + int + long, und dies ist irgendwas, nur nicht das gewünschte.